53/24在python中的结果为2.2083333333333335,为什么呢?
不幸的是,大多数十进制分数不能完全表示为二进制分数。结果是,通常,您输入的十进制浮点数仅与实际存储在计算机中的二进制浮点数近似。
与文档一起玩并使用decimal
,情况变得更加清晰(我使用的是Python 2.7,因此将分子的类型转换为浮动的):
In [1]: from decimal import Decimal
In [2]: Decimal(53.0 / 24)
Out[2]: Decimal('2.208333333333333481363069950020872056484222412109375')
所以,这就是为什么您得到的结果。
另外,您还可以str.format
用来查看小数点后的位数:
In [3]: "{:0.20f}".format(53.0 / 24)
Out[3]: '2.20833333333333348136'
另外,请参阅每个程序员应了解的有关浮点运算的知识。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句