- round()函数存在小数末位为5时奇偶进位问题
- 自定义new_round函数可以解决大部分进位问题
def new_round(_float, _len):#传入需要四舍五入的参数以及保留位数
if isinstance(_float, float):#判断类型
if str(_float)[::-1].find('.') <= _len:
#判断尾数与保留位数大小
return(_float)
if str(_float)[-1] == '5':
return(round(float(str(_float)[:-1]+'6'), _len))
#将末位5改为6,避免round函数产生奇偶进位问题
else:
return(round(_float, _len))
else:
return(round(_float, _len))
- 栗子
此函数摘自四舍五入就用round( )?Python四舍五入的正确打开方式!评论区,感谢@热苏斯是有潜力超越姆巴佩的用户提供的函数



