Python3.8中round(2.5)是2,但是round(7.5)是8?

1

 

因为Python中round函数用的是银行家舍入算法。

美国银行家在发现传统四舍五入算法存在误差,发明了银行家舍入算法,该算法的核心为:

舍去位的数值小于5时,直接舍去
舍去位的数值大于等于6时,进位舍去
当舍去位的数值等于5时,分为两种情况:5后面还有其他数字(非0),则进位后舍去;若5后面是0,则根据5前一位数的奇偶性来判断是否需要进位,奇数进位,偶数舍去。
即:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。

https://blog.csdn.net/qq_34745295/article/details/96905782
 

 

python3中round() 确实有点坑. 可以用

from decimal import Decimal

您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632