以科学计数法 python 优雅地打印

Posted

技术标签:

【中文标题】以科学计数法 python 优雅地打印【英文标题】:Print elegantly in scientific notation python 【发布时间】:2020-02-16 08:54:21 【问题描述】:

我想通过以下方式打印一个数字及其不确定性:

x = (4.23 ± 0.01) e3

其中值及其不确定性是两个不同的变量。

mean = 4230
uncertainty = 10 
print("x is %.2e \u00B1 %.2e" % (mean, uncertainty))

我希望它们的格式与科学记数法中的指数幂相同。我得到的是

x is 4.23e+03 ± 1.00e+01

【问题讨论】:

您需要为此编写自己的自定义逻辑,从代码开始以发现适当的比例(在您的示例中为 e3,但如果不确定性为 1e6 怎么办?)。请尝试编写代码,如果遇到困难请告诉我们。 如果您只是在寻找更好的科学记数法格式,您可以考虑在输出值时使用此库。 github.com/David-OConnor/scinot 【参考方案1】:

假设平均整数,一种方法可能是

>>> mean = 4230
>>> uncertainty = 10 
>>> pos_to_first = len(str(mean)) - 1
>>> f"(mean/10**pos_to_first ± uncertainty/10**pos_to_first) Epos_to_first"
'(4.23 ± 0.01) E3'

【讨论】:

以上是关于以科学计数法 python 优雅地打印的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有科学记数法和给定精度的情况下漂亮地打印 numpy.array?

Python:一种科学记数法

以科学计数法打印 cpp_dec_float,不带尾随零

将数据帧转换为 numpy 数组会导致所有数字以科学计数法打印 [关闭]

强制python不以标准形式/科学记数法/指数形式输出浮点数[重复]

以非科学计数法打印 float 或 double