指数中的位数(字符串格式)

number of digits in the exponent (string formatting)

在python中格式化数字的底数很容易,但指数默认显示两位数。但是,我只想显示数字(即没有前导零)。看这个例子:

x=1.25e-5
s=f'{x:.2e}'

s 将读作 '1.25e-04',但是,我希望它是 '1.25e-4'

我该怎么做?

试试这个:

format(x).replace("E-0", "E-")

实际上这可能更好

(x).ToString("0.#E+0");

如果您不介意使用外部包,可以使用 numpy.format_float_scientific

也就是说你可以

import numpy as np
x = 1.25e-5
s = np.format_float_scientific(x,exp_digits=1)