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

Python中不使用f-string与format,如何截取两位小数且不四舍五入?

实现方法

给定 num = 14.667789,要在Python中不使用f-strings和format()方法,获取不四舍五入的两位小数结果14.66,以下是几种可行的实现方式:

  • 整数运算截断法
    利用整数取整特性,先将数值放大100倍后取整,再缩小回原比例:

    num = 14.667789
    output = int(num * 100) / 100
    print(output)  # 输出 14.66
    

    注意:若遇到浮点数精度导致的微小偏差(如某些数值乘100后出现类似1466.9999999999998的情况),int()会直接截断小数部分,依然能得到正确结果。

  • 字符串截断法
    将数值转为字符串后,分割整数与小数部分,截取前两位小数再拼接转换:

    num = 14.667789
    num_str = str(num)
    if '.' in num_str:
        int_part, dec_part = num_str.split('.')
        output = float(int_part + '.' + dec_part[:2])
    else:
        output = num  # 无小数的情况直接返回原数
    print(output)  # 输出 14.66
    

    注意:此方法不适用于数值以科学计数法表示的场景,若需兼容可先处理科学计数法格式。

  • math模块向下取整法
    使用math.floor()对放大后的数值向下取整,再缩小比例:

    import math
    num = 14.667789
    output = math.floor(num * 100) / 100
    print(output)  # 输出 14.66
    

    注意:该方法对正数有效,若处理负数需调整逻辑(如负数应使用math.ceil())。

内容的提问来源于stack exchange,提问作者Abbas Shaikh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:25:29