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

如何不进行四舍五入将浮点数保留两位小数?

如何不四舍五入截断浮点数到指定小数位

不需要必须转字符串再转回浮点数,有几种更简便的方法:

  • 数学运算截断法
    通过缩放后取整再还原的方式实现,比如要保留2位小数:
num = 8.225
truncated_num = int(num * 100) / 100
print(truncated_num)  # 输出 8.22

注意:由于浮点数的二进制存储特性,像8.225这类数实际在计算机中可能是近似值(比如8.224999999999999),这种情况下该方法依然能得到正确的截断结果。

  • 使用decimal模块精确截断
    如果需要避免浮点数精度问题,推荐用decimal模块,它支持精确的十进制运算和指定截断模式:
from decimal import Decimal, ROUND_DOWN

num = Decimal('8.225')
truncated_num = num.quantize(Decimal('0.00'), rounding=ROUND_DOWN)
print(truncated_num)  # 输出 8.22

这种方法适合对精度要求高的场景,能完全避免浮点数存储带来的误差。

  • 字符串格式化(仅用于显示)
    如果只是需要输出显示截断后的结果,直接用字符串切片处理即可,无需转回浮点数:
num = 8.225
num_str = str(num)
if '.' in num_str:
    integer_part, decimal_part = num_str.split('.')
    truncated_str = f"{integer_part}.{decimal_part[:2]}"
else:
    truncated_str = num_str
print(truncated_str)  # 输出 8.22

内容的提问来源于stack exchange,提问作者Surabhi Dey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:35:11