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

Python中如何截断浮点数至指定位数而非四舍五入?

实现浮点数不四舍五入的截断方法

针对你需要将14.233677截断为14.233的需求,以下是几种可行的实现方式:

  • 数学运算截断
    通过先放大指定倍数、取整再缩小的方式实现截断,适合简单场景:

    number_float = 14.233677
    truncated = int(number_float * 1000) / 1000
    print(truncated)  # 输出14.233
    

    注意:部分浮点数因二进制存储特性可能存在精度误差,若需高精度处理可使用下面的decimal模块。

  • decimal模块精确截断
    Python的decimal模块支持精确的十进制运算,可指定截断模式:

    from decimal import Decimal, ROUND_DOWN
    
    number_float = 14.233677
    # 先转字符串避免浮点数精度损失
    decimal_num = Decimal(str(number_float))
    # 设置保留3位小数并截断
    truncated_decimal = decimal_num.quantize(Decimal('0.000'), rounding=ROUND_DOWN)
    print(float(truncated_decimal))  # 输出14.233
    
  • 字符串截断法
    将浮点数转为字符串后,截取小数点后指定长度再转回浮点数,逻辑直观:

    number_float = 14.233677
    num_str = str(number_float)
    if '.' in num_str:
        integer_part, decimal_part = num_str.split('.', 1)
        truncated_str = f"{integer_part}.{decimal_part[:3]}"
    else:
        truncated_str = f"{num_str}.000"
    truncated = float(truncated_str)
    print(truncated)  # 输出14.233
    

    注意:若浮点数以科学计数法形式存在(如极小/极大数),需额外处理字符串格式。

内容的提问来源于stack exchange,提问作者Nicoara Antonio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:54:56