使用round(2.9239,2)
时,它产生的输出为2.99999999而不是2.92。在stackoverflow中,我已经读过,处理这个的最好方法是在输出上使用字符串格式。如果这是唯一的方法,为什么我们甚至有一个圆函数?所有数字都不一致。正如在某些数字中,它给出了正确的输出,对于某些数字它没有。
答案 0 :(得分:6)
(我认为你的意思是它应该是2.92
,你得到的输出是2.9199999999999999
。)
这是浮点运算的一个经典问题 - 数字2.92不能完全表达为浮点指针数 - 在二进制中它将是无限的数字序列,因为⅓是十进制的。在Python文档中的floating point arithmetic页面上很好地解释了这一点。 documentation for round()
明确提到了这个问题。