xphgz 发表于 2021-5-25 16:56:41

python的round出现问题,什么鬼???

如果用
a=2.5
print(round(a))
那么显示的结果是2
如果用
a=2.51
print(round(a))
显示的结果却是3

但是吧后面的数值换成除了小数点前面是2以外的所有数值,都是可以四舍五入的。
只要小数点前面是2的,那么小数点后面必须是大于0.5才可以入


这是什么情况

Twilight6 发表于 2021-5-25 17:06:42


计算机的浮点型都是有误差的

所以在 .5 这个边界若恰好位于 .5

那么认为还是 四舍 部分,而只要大于 .5 部分就为 五入

xphgz 发表于 2021-5-25 17:22:34

1.5
3.5
4.5
5.5
6.5
7.5
8.5
9.5
都是可以入

只有2.5是不可以入

很奇怪。

Twilight6 发表于 2021-5-25 17:36:42

xphgz 发表于 2021-5-25 17:22
1.5
3.5
4.5



{:10_328:} 试了下还真是...

实际上没必要纠结啦,本质就是 浮点数不精确导致的
页: [1]
查看完整版本: python的round出现问题,什么鬼???