Python 保留小数的 5 种方法

📅 2026/8/3 1:25:34
Python 保留小数的 5 种方法
Python 保留小数的 5 种方法1.round()— 内置四舍五入round(3.14159,2)# 3.14round(3.14159,3)# 3.142round(3.5)# 4不传小数位数取整坑银行家舍入四舍六入五留双round(2.5)# 2不是3因为 2 是偶数round(3.5)# 43 是奇数进到 42. f-string — 格式化输出推荐n3.14159f{n:.2f}# 3.14f{n:.0f}# 3f{n*100:.2f}%# 314.16%f{1000000:.2f}# 1000000.00返回的是字符串用于展示不是用来继续计算的。3.Decimal— 精确小数金融计算必用fromdecimalimportDecimal,ROUND_HALF_UP Decimal(0.1)Decimal(0.2)# Decimal(0.3)不是 0.30000000000000004# 指定保留位数 舍入方式Decimal(3.14159).quantize(Decimal(0.00),roundingROUND_HALF_UP)# Decimal(3.14)Decimal(2.675).quantize(Decimal(0.00),roundingROUND_HALF_UP)# Decimal(2.68)4.math.floor()/math.ceil()— 向下/向上取整importmath math.floor(3.9)# 3向下math.ceil(3.1)# 4向上# 保留 2 位小数后向下截断math.floor(3.14159*100)/100# 3.145.int() 乘法 — 直接截断int(3.14159*100)/100# 3.14方法对比方法返回类型精确度适用场景round()float银行家舍入一般计算f{n:.2f}str四舍五入展示输出DecimalDecimal精确控制金融、金额math.floorint/float单方向分页、配额int(n*100)/100float直接截断简单截尾核心坑浮点数不精确0.10.2# 0.30000000000000004round(2.675,2)# 2.67不是 2.68原因小数在二进制中无法精确表示。涉及金额用Decimal别用float。