繁体   English   中英

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

[英]Number of digits after decimal point in scientific (e) format

我想得到小数点后所需的位数,同时保持科学格式的答案(例如 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 的值?

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

下面是一个更简化的示例,它将精度限制为 3 位(或小数点后 2 位):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM