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

Python格式化打印中如何控制科学计数法的指数位数?

解决Python科学计数法指数仅保留一位的问题

在Python 3.10中,标准的格式化字符串(f-string 或 str.format)没有直接控制指数位数的参数,默认会输出两位指数(比如1e-04)。要实现指数仅保留一位的效果,有两种可行方案:

方案1:封装numpy的格式化方法

虽然np.format_float_scientific代码较长,但可以封装成一个简单函数,调用时就很简洁:

import numpy as np

def fmt_short_sci(num):
    return np.format_float_scientific(
        num, 
        precision=0, 
        exp_digits=1, 
        unique=True, 
        trim='-'
    )

xx = 1.e-4
print(fmt_short_sci(xx))  # 输出:1e-4

方案2:纯Python字符串处理(不依赖numpy)

先按标准科学计数法格式化,再手动修改指数部分,去掉多余的前导0:

xx = 1.e-4
# 先得到标准科学计数法字符串
raw_fmt = f"{xx:.0e}"
# 拆分底数和指数部分
if 'e' in raw_fmt:
    base, exp_part = raw_fmt.split('e')
    # 处理两位指数的情况(比如-04、+03)
    if len(exp_part) == 3:
        sign = exp_part[0]
        # 取指数的最后一位数字,去掉前导0
        exp_digit = exp_part[-1]
        raw_fmt = f"{base}e{sign}{exp_digit}"
print(raw_fmt)  # 输出:1e-4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 02:44:59