[Python] 四舍五入
通过使用 Python 内置的 decimal
模块,实现对小数保留位数进行精确控制的方法。
四舍六入五成双(银行家舍入规则)
import decimal
for i in range(100):
s = f'1.{i:02}5'
a = float(s)
b = int(a * 100 + 0.5) / 100
c = decimal.Decimal(s)
print(a,
round(a, 2),
f'{a:.2f}',
b,
round(c, 2),
sep=' \t')
四舍五入
方法1
import decimal
decimal.getcontext().rounding = decimal.ROUND_HALF_UP
for i in range(100):
s = f'1.{i:02}5'
a = float(s)
b = int(a * 100 + 0.5) / 100
c = decimal.Decimal(s)
print(a,
round(a, 2),
f'{a:.2f}',
b,
round(c, 2),
sep=' \t')
方法2
import decimal
for i in range(100):
s = f'1.{i:02}5'
a = float(s)
b = int(a * 100 + 0.5) / 100
c = decimal.Decimal(s)
print(a,
round(a, 2),
f'{a:.2f}',
b,
c.quantize(decimal.Decimal('0.01'), decimal.ROUND_HALF_UP)
sep=' \t')
注意:一定要通过字符串创建
decimal
对象!
文章目录
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭