>> round(0.45, 1) 0.5 >>> round(1.45, 1) 1.4 >>> round(2.45, 1) 2.5 >>> round(3.45, 1-6ren">
gpt4 book ai didi

python - Python 中 "round"函数的行为

转载 作者:太空狗 更新时间:2023-10-29 22:27:08 24 4
gpt4 key购买 nike

谁能给我解释一下这段代码:

>>> round(0.45, 1)
0.5
>>> round(1.45, 1)
1.4
>>> round(2.45, 1)
2.5
>>> round(3.45, 1)
3.5
>>> round(4.45, 1)
4.5
>>> round(5.45, 1)
5.5
>>> round(6.45, 1)
6.5
>>> round(7.45, 1)
7.5
>>> round(8.45, 1)
8.4
>>> round(9.45, 1)
9.4

已更新

我猜这是因为 float 表示。我说得对吗?

最佳答案

你是对的。没有一个数字可以准确表示。在某些情况下,小数部分严格大于 0.45,在某些情况下则严格小于:

In [4]: ['%.20f' % val for val in (0.45, 1.45, 2.45, 3.45, 4.45, 5.45, 6.45, 7.45, 8.45, 9.45)]
Out[4]:
['0.45000000000000001110',
'1.44999999999999995559',
'2.45000000000000017764',
'3.45000000000000017764',
'4.45000000000000017764',
'5.45000000000000017764',
'6.45000000000000017764',
'7.45000000000000017764',
'8.44999999999999928946',
'9.44999999999999928946']

这解释了看似不一致的舍入。

关于python - Python 中 "round"函数的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15732032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com