以科学计数法 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?
将数据帧转换为 numpy 数组会导致所有数字以科学计数法打印 [关闭]