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

Python实现数字四舍五入到最近千位并添加k/m/t单位后缀

Python 数字转带k/m/t单位后缀实现
  • 先预设单位映射表,按数值量级从小到大对应后缀,同时匹配四舍五入的除数
  • 对输入数值先做合法性校验,确保不超过支持的最大值999,999,999,999
  • 从最高量级开始匹配,找到符合的量级后做四舍五入,拼接后缀即可

实现代码

def format_num(num: int) -> str:
    # 支持的最大数值
    MAX_NUM = 999_999_999_999
    if num > MAX_NUM:
        raise ValueError(f"输入数值不能超过{MAX_NUM}")
    # 单位映射:(阈值, 除数, 后缀)
    units = [
        (1_000_000_000, 1_000_000_000, 't'),
        (1_000_000, 1_000_000, 'm'),
        (1_000, 1_000, 'k'),
    ]
    for threshold, div, suffix in units:
        if num >= threshold:
            # 四舍五入到整数
            rounded = round(num / div)
            return f"{rounded}{suffix}"
    # 小于1000直接返回原数字字符串
    return str(num)

测试验证

用示例给出的数值测试,输出完全匹配要求:

test_cases = [6, 23, 465, 3798, 43423, 910679, 8270192, 23890951, 430493245]
for n in test_cases:
    print(f"{n:>10} --> {format_num(n)}")

输出结果:

6 --> 6
        23 --> 23
       465 --> 465
      3798 --> 4k
     43423 --> 43k
    910679 --> 911k
   8270192 --> 8m
  23890951 --> 24m
 430493245 --> 430m

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:27:03