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

Hic*_*ick -2 python

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

Mar*_*air 6

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

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