我使用python3,代码如下:
import math
print(round(1.755,2))
print(round(1.7555,3))
print("%.2f" % 1.755)
print("%.3f" % 1.7555)
结果:
1.75
1.756
1.75
1.756
为什么,round(1.755,2) = 1.76
??
答案 0 :(得分:0)
来自round
的文档注意浮点数的round()行为可能会令人惊讶:例如,round(2.675,2)给出2.67而不是预期的2.68。这不是一个错误:这是因为大多数小数部分不能完全表示为浮点数。有关详细信息,请参阅浮点运算:问题和限制。
这不是Python的问题,它只是浮点数的属性。浮点数与实数之间的映射存在一定程度的误差。这导致一些舍入情况不可预测。