You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何截断浮点数至指定小数位(不四舍五入)

Python实现浮点数保留两位小数且不四舍五入的方法

当然有办法实现,下面是几种实用方案:

方法一:数学运算截断

通过乘以100后取整,再除以100实现截断,适合正数场景:

n = 3.145678
result = int(n * 100) / 100
print(result)  # 输出 3.14

注意:如果浮点数存在精度误差(比如0.29实际存储为0.28999999999999998),直接用int()可能会得到不符合预期的结果,这时可以结合math.floor(仅针对正数):

import math
n = 0.29
result = math.floor(n * 100) / 100
print(result)  # 输出 0.29

方法二:字符串处理

把浮点数转为字符串后截取小数部分前两位,逻辑直观:

n = 3.145678
s = str(n)
if '.' in s:
    int_part, dec_part = s.split('.')
    # 若小数部分不足两位,补零;超过两位则截取前两位
    formatted = f"{int_part}.{dec_part[:2].ljust(2, '0')}"
else:
    formatted = f"{s}.00"
result = float(formatted)
print(result)  # 输出 3.14

方法三:Decimal模块设置截断模式

之前用Decimal出现四舍五入是因为默认的舍入模式,设置ROUND_DOWN即可实现截断:

from decimal import Decimal, ROUND_DOWN
# 注意传入字符串而非浮点数,避免精度丢失
n = Decimal('3.145678')
result = n.quantize(Decimal('0.00'), rounding=ROUND_DOWN)
print(result)  # 输出 3.14

内容的提问来源于stack exchange,提问作者Lucky Vishwakarma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 03:09:57