Python如何将浮点型数字的小数限制为两位【面试题详解】

今天爱分享给大家带来Python如何将浮点型数字的小数限制为两位【面试题详解】,希望能够帮助到大家。
你陷入了一个浮点型数据的很老的错误,即所有的数字都不能表示。命令行只能告诉你内存中的全长小数。在浮点里你四舍五入到一个同样的数字。自从计算机是二进制开始,他们把浮点数保存为整数然后除一个2的幂。两位精确的数字有53比特(16位)的精度,常规的浮点数有24比特(8位)的精度。floating point in python uses double precision保存值。

举个例子:


>>>125650429603636838/(2**53)
13.949999999999999

>>> 234042163/(2**24)
13.949999988079071

>>> a=13.946
>>> print(a)
13.946
>>> print("%.2f" % a)
13.95
>>> round(a,2)
13.949999999999999
>>> print("%.2f" % round(a,2))
13.95
>>> print("{0:.2f}".format(a))
13.95
>>> print("{0:.2f}".format(round(a,2)))
13.95
>>> print("{0:.15f}".format(round(a,2)))
13.949999999999999

作为货币如果你只需要小数点后两位的位置,那么你有一对比较好的选择,用整数存储值为分而不是元,之后除以100来得到元。或者用修正过的小数,比如decimal

人已赞赏
Python

Python如何强制使用浮点数除法【面试题详解】

2020-12-27 16:00:59

Python

Python中如何表示逻辑的异或【面试题详解】

2020-12-27 16:16:59

'); })();