关于Python的保留小数问题的探讨——实现真正的“四舍五入”数值修约规则

本文详细探讨了Python中浮点数保留小数时出现的舍入问题,解释了奇进偶舍(银行家舍入法)的规则,并指出由于浮点数的非精确性可能导致不符合直觉的舍入结果。通过示例,作者展示了如何利用decimal模块和特定技巧实现真正的四舍五入。文章最后提供了一种解决方法,确保在财务计算中符合四舍五入的修约规则。

    无论是用过Python的数据格式化输出,还是round()保留小数,相信读者都遇到过困惑的问题。看下面的例子:

    对1.375、1.475、3.255、1.125、1.245五个数保留二位小数。

print('%.2f,%.2f,%.2f,%.2f,%.2f ' % (1.375,1.475,3.255,
      1.125,1.245))

    结果为: 

1.381.483.251.121.25

print('{:.2f},{:.2f},{:.2f},{:.2f},{:.2f}'.format(1.375,
	  1.475,3.255,1.125,1.245))

    结果为:

1.381.483.251.121.25

print(round(1.375,2),round(1.475,2),round(3.255,2),
           round(1.125,2),round(1.245,2),sep=',')

    结果为:

1.381.483.251.121.25

    用%格式化、f

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值