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 如果需要正常的四舍五入,需要自己写个函数来处理。

 


 

完。

posted @ 2022-01-20 16:16  Tiac  阅读(397)  评论(0编辑  收藏  举报