无论是用过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.38,1.48,3.25,1.12,1.25
print('{:.2f},{:.2f},{:.2f},{:.2f},{:.2f}'.format(1.375,
1.475,3.255,1.125,1.245))
结果为:
1.38,1.48,3.25,1.12,1.25
print(round(1.375,2),round(1.475,2),round(3.255,2),
round(1.125,2),round(1.245,2),sep=',')
结果为:
1.38,1.48,3.25,1.12,1.25
用%格式化、f

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

878

被折叠的 条评论
为什么被折叠?



