-5

我对 Python 的 round 函数有点困惑,我尝试了一些输入,该函数给了我有趣的输出。我正在使用 Python 3.7.7 有人知道它为什么会这样吗?

>>> round(2.505, 2)
2.5
>>> round(291.605, 2)
291.61
>>> round(291.705, 2)
291.7
>>> round(291.805, 2)
291.81
>>> round(291.405, 2)
291.4
4

1 回答 1

3

浮点数表示为二进制分数。以 2 个分数为基数。

Pyhton 仅显示基于机器以二进制分数存储的数字的十进制近似值的十进制分数。

大多数十进制分数不能完全表示为二进制分数。结果是,通常,您输入的十进制浮点数仅与实际存储在机器中的二进制浮点数近似。

所以 291.705 可能存储为 291.7049999997625792999286.. 等等。因此导致 291.70 或 291.7

要了解更多信息,请访问:浮点算术

于 2020-07-20T08:31:02.673 回答