使用Python的round()函数时导致错误。可能是什么问题?

时间:2011-10-17 11:49:30

标签: python

使用round(2.9239,2)时,它产生的输出为2.99999999而不是2.92。在stackoverflow中,我已经读过,处理这个的最好方法是在输出上使用字符串格式。如果这是唯一的方法,为什么我们甚至有一个圆函数?所有数字都不一致。正如在某些数字中,它给出了正确的输出,对于某些数字它没有。

1 个答案:

答案 0 :(得分:6)

(我认为你的意思是它应该是2.92,你得到的输出是2.9199999999999999。)

这是浮点运算的一个经典问题 - 数字2.92不能完全表达为浮点指针数 - 在二进制中它将是无限的数字序列,因为⅓是十进制的。在Python文档中的floating point arithmetic页面上很好地解释了这一点。 documentation for round()明确提到了这个问题。