科学(e)格式小数点后的位数



我想得到小数点后所需的位数,同时保持答案的科学格式(例如2.989e+10(。我知道方法格式:"{:0.Ae}";。格式(given_number(,其中A是小数后的位数。然而,我通过一个变量得到小数(A(后的位数。有人能帮助我如何实施它以获得期望的结果吗?我的代码:将A视为小数点后的位数。

for val in [1.049666666666667e-08, 4.248944444444444e+05]:
val_log = math.log10(val);
val_e = round(val_log - (0.5 if val_log<0 else 0));
A = abs(val_e +3);
valstr = "{:0.Ae}".format(val)
print(valstr)

它基本上是小数点后的位数(A(=|3+e|后的值。我应该如何在{:0.xe}.格式(val(中使用A的值?

您可以在精度字段中嵌套一个变量,正如格式化字符串文本的文档在一个带有注释"的示例中指出的那样;嵌套字段";。

下面是一个更简单的例子,将精度限制在3位(或小数点后的2位(:

>>> f = 123.12345
>>> n = 3
>>> print(f'{f:.{n}}')
1.23e+02
>>>

最新更新