python中内置函数round的用法

round(3.35,1) 3.4 round(3.45,1) 3.5 round(3.25,1) 3.2

这跟浮点数的精度有关。我们知道在机器中浮点数不一定能精确表达,因为换算成一串1和0后可能是无限位数的,机器已经做出了截断处理。那么在机器中保存的3.35这个数字就比实际数字要大那么一点点。这一点点就导致了它离3.4要更近一点点,所以保留1位小数时就近似到了3.4。

同理 round(3.45,1)  保存的3.45这个数字就比实际数字要大那么一点点就会产生3.5

如果有帮助请点一下我回答右上方的采纳,谢谢!以后有什么问题可以互相交流。

你遇到什么问题了吗?

看下这个 https://www.yudelei.com/47.html

 

在 Python 3 中,round() 函数采用银行家的思维“四舍六入五成双 银行家式舍入法”,而不是使用人类常用的思维“四舍五入”。同时还有浮点数在计算机中进行二进制存放问题,导致在使用 round() 函数时,会出现“感觉上很奇怪的舍入法”。

银行家式舍入法 四舍六入五成双

四舍六入五考虑。
五后非零就进一,
五后皆零看奇偶,
五前为偶应舍去,
五前为奇要进一。

例子

一个数 a.bcdef,需要精确到小数点后两位,那么就要看小数点后第三位:
1.如果 d 小于 5,直接舍去
2.如果 d 大于 5,直接进位
3.如果 d 等于 5:
3.1 且 d 后面没有数据,且 c 为偶数,那么不进位,保留 c
3.2 且 d 后面没有数据,且 c 为奇数,那么进位,c 变成(c + 1)
3.3 且 d 后面还有非 0 数字,此时一定要进位,c 变成(c + 1)

 

 

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

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

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