浮动总数:意外结果

2024-05-12 21:44:51 发布

您现在位置:Python中文网/ 问答频道 /正文

以下输出令我吃惊:

1.1 + 2.2
=> 3.3000000000000003

总数中出现了一个出乎意料的小数字。其他加数则不相同,例如:

^{pr2}$

我在Python2.7和3.4中都试过了,但结果是一样的。这个意外的结果是什么原因?在


Tags: 原因数字总数pr2加数
3条回答

归根结底,归根结底,计算机是在处理二进制数。有些分数并不像我们希望的二进制数那样简洁。结果值包括一些剩余的数字垃圾。在

有关更完整的讨论,请参见:python floating numberLimiting floats to two decimal points,但合理的解决方案可能是指定所需的精度,例如:

>>> a = 1.1 + 2.2
>>> a = round(a,1)
>>> a 
3.3

主要是因为二进制不能很好地使用十进制(2和10是互质的),浮点运算的精度有限。在

相关问题 更多 >