为什么"%0.2f"%(.3)不返回"0.29"?

use*_*517 0 python floating-point

0.35的IEEE 754浮点值约为0.29999999999999998.

基于此,似乎Python 在执行时应该打印"0.29" "%0.2f" % (.3).但是,它实际打印"0.30".

Python在幕后做了什么来获得字符串表示?

编辑:浮点运算的最后一句:问题和限制是有趣的:

在当前版本中,Python显示基于最小小数部分的值,该小数部分正确地回滚到真正的二进制值

zmb*_*mbq 5

四舍五入.Python将数字四舍五入,并且0.29999四舍五入到两位小数是0.30.