如何解决科学 (e) 格式的小数点后位数
我想获得所需的小数点后位数,同时保持科学格式的答案(例如 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 的值?
解决方法
您可以在精度字段中嵌套变量,如 formatted string literals 的文档在带有注释“嵌套字段”的示例中指出的那样。
下面是一个更简化的例子,将精度限制为 3 位(或小数点后 2 位):
>>> f = 123.12345
>>> n = 3
>>> print(f'{f:.{n}}')
1.23e+02
>>>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。