我希望在保留科学格式(例如2.989e+10)答案的同时,获得小数点后所需的位数。我知道方法的格式:"{:0.Ae}".format(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}.format(val)中使用A的值?
发布于 2021-04-03 07:39:16
您可以在精度字段中嵌套一个变量,正如formatted string literals的文档在带有注释“嵌套字段”的示例中指出的那样。
下面是一个更简单的示例,它将精度限制为3位(或小数点后的2位):
>>> f = 123.12345
>>> n = 3
>>> print(f'{f:.{n}}')
1.23e+02
>>>https://stackoverflow.com/questions/66926304
复制相似问题