为什么math.round(1.755,2)结果是1.75而不是1.76但是圆形(1.7555,3)是1.756

时间:2017-07-24 03:34:49

标签: python-3.x

我使用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 ??

1 个答案:

答案 0 :(得分:0)

来自round

的文档
  

注意浮点数的round()行为可能会令人惊讶:例如,round(2.675,2)给出2.67而不是预期的2.68。这不是一个错误:这是因为大多数小数部分不能完全表示为浮点数。有关详细信息,请参阅浮点运算:问题和限制。

这不是Python的问题,它只是浮​​点数的属性。浮点数与实数之间的映射存在一定程度的误差。这导致一些舍入情况不可预测。