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

Python中如何用f-string去除浮点数表示的末尾零?

Python f-string 浮点数格式化:去除末尾零

使用f-string格式化浮点数时,用.2f会强制保留两位小数,哪怕末尾是零:

f"{1.34 :.2f}"  # 输出 1.34
f"{1.30 :.2f}"  # 输出 1.30
f"{1.00 :.2f}"  # 输出 1.00

如果想自动去除末尾零,同时省略多余的小数点,实现下面的效果:

f"{1.34 :.2f}"  # 期望输出 1.34
f"{1.30 :.2f}"  # 期望输出 1.3
f"{1.00 :.2f}"  # 期望输出 1

这里有两种简洁的f-string写法可以实现:

方法1:使用g格式符

g格式符会自动去除末尾零和不必要的小数点,精度参数代表有效数字的位数。如果要对应原来.2f的精度(最多两位小数),可以设置.2g:

print(f"{1.34 :.2g}")  # 1.34
print(f"{1.30 :.2g}")  # 1.3
print(f"{1.00 :.2g}")  # 1

注意:当数值的有效数字超过设置的位数时,g会自动切换为科学计数法,比如f"{1234.56 :.2g}"会输出1.2e+03。如果不想用科学计数法,可结合#修饰符强制保留小数点,但此时末尾零仍会被去除:

print(f"{1234.56 :.2#g}")  # 1.2e+03(仍为科学计数,但保留小数点标识)

方法2:结合字符串方法处理

如果要严格保证最多保留两位小数,同时避免科学计数法,可以在f-string里直接调用rstrip方法去除末尾零和多余小数点:

print(f"{1.34 :.2f}".rstrip('0').rstrip('.'))  # 1.34
print(f"{1.30 :.2f}".rstrip('0').rstrip('.'))  # 1.3
print(f"{1.00 :.2f}".rstrip('0').rstrip('.'))  # 1

这个写法逻辑更直观,不管数值大小都能按照需求格式化,不会触发科学计数法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:50:45