python round 四舍五入踩坑
说明:python round 函数并不是主观意义上的理解四舍五入,也不全是“四舍六入五取偶”
一、四舍五入取整
注:观察上述代码执行结果,四舍六入基本没什么问题,主要是 .5 的情况,可以看到
1.5 在取舍(2 或 1)的时候,取了 2;
2.5 在取舍(3 或 2)的时候取了 2;
3.5 在取舍(4 或 3)的时候取了 4;
在取整数的情况下,round 函数是 四舍六入五取偶
二、试一下保留两位小数
注:观察以上结果,可以发现 .455 的都入到 0.46 了,但 .465 只有 1.465 进到 .47 了,其他的没入
进一步确认:
注:观察以上结果,可以发现 确实只有 1.465 进到 .47 了,其他的没入
三、再来试一下保留一位小数
注:见鬼了,这是啥规律啊!??
换个写法试试:
注:还是一样,真见鬼了!!
四、试一下其他编程语言
javascript:
java:
golang:
php:
五、结论
1、python、javascript、go 的 ”四舍五入” 逻辑一致,但和我们日常理解的 四舍五入 不太一样;
2、java 和 php 的 “四舍五入” 逻辑是比较正常(适合印象)的四舍五入;
3、python 如果需要正常的四舍五入,需要自己写个函数来处理。
完。