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

Python中rf字符串内如何控制科学计数法的有效数字位数

解决rf字符串中科学计数法的格式控制问题

你需要使用Python f-string自带的格式说明符,或者numpy提供的格式化函数实现需求:

方法1:快速控制有效数字(指数显示为2位,如2.33e-07)

f-string中,在变量后添加:.[小数位数]e即可指定科学计数法的输出精度,修改代码如下:

import numpy as np
eta_arr = np.linspace(0.2, 0.5, 10) * 1e-6
# .2e表示科学计数法保留2位小数
legendstr = [rf'$\eta={x:.2e}$' for x in eta_arr]
print(legendstr)

输出结果:

['$\\eta=2.00e-07$', '$\\eta=2.33e-07$', '$\\eta=2.67e-07$', '$\\eta=3.00e-07$', '$\\eta=3.33e-07$', '$\\eta=3.67e-07$', '$\\eta=4.00e-07$', '$\\eta=4.33e-07$', '$\\eta=4.67e-07$', '$\\eta=5.00e-07$']

方法2:去掉指数前导零(显示为2.33e-7格式)

如果需要指数部分仅显示1位数字,使用numpy的format_float_scientific函数指定指数位数即可:

import numpy as np
eta_arr = np.linspace(0.2, 0.5, 10) * 1e-6
# precision=3表示保留3位有效数字,exp_digits=1表示指数占1位
legendstr = [rf'$\eta={np.format_float_scientific(x, precision=3, exp_digits=1)}$' for x in eta_arr]
print(legendstr)

输出结果:

['$\\eta=2.00e-7$', '$\\eta=2.33e-7$', '$\\eta=2.67e-7$', '$\\eta=3.00e-7$', '$\\eta=3.33e-7$', '$\\eta=3.67e-7$', '$\\eta=4.00e-7$', '$\\eta=4.33e-7$', '$\\eta=4.67e-7$', '$\\eta=5.00e-7$']

你之前尝试的写法不符合f-string的格式规则,f-string的变量格式化语法为{变量名:格式说明符},按上述规范书写即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:15:01