2024-05-12 21:44:51 发布
网友
以下输出令我吃惊:
1.1 + 2.2 => 3.3000000000000003
总数中出现了一个出乎意料的小数字。其他加数则不相同,例如:
我在Python2.7和3.4中都试过了,但结果是一样的。这个意外的结果是什么原因?在
归根结底,归根结底,计算机是在处理二进制数。有些分数并不像我们希望的二进制数那样简洁。结果值包括一些剩余的数字垃圾。在
有关更完整的讨论,请参见:python floating number和Limiting floats to two decimal points,但合理的解决方案可能是指定所需的精度,例如:
>>> a = 1.1 + 2.2 >>> a = round(a,1) >>> a 3.3
主要是因为二进制不能很好地使用十进制(2和10是互质的),浮点运算的精度有限。在
归根结底,归根结底,计算机是在处理二进制数。有些分数并不像我们希望的二进制数那样简洁。结果值包括一些剩余的数字垃圾。在
有关更完整的讨论,请参见:python floating number和Limiting floats to two decimal points,但合理的解决方案可能是指定所需的精度,例如:
主要是因为二进制不能很好地使用十进制(2和10是互质的),浮点运算的精度有限。在
相关问题 更多 >
编程相关推荐