以科学记数法显示具有特定数字的数字

时间:2017-03-24 21:57:58

标签: python

我想用科学记数法显示数字:

-407.45833

到目前为止我用过这个:

        i = '%E' % Decimal(i)

结果:

-4.074583E+02

现在我的问题是:如何添加一个数字,使它看起来像这样:?

-4.074583E+002 

我知道我应该在Python string formatting的表格中找到我的答案,以选择正确的格式布局,但我无法找到它。有人可以告诉我结果以及在哪里找到它吗?

1 个答案:

答案 0 :(得分:0)

遗憾的是,在+之后,使用字符串格式不能直接使用三位数字。替换它的一种简单方法是使用它,因为我们知道的是指数形式都存储为字符串,因此所有字符串方法都可以使用它。

我写了一个小函数,它采用常规科学记数法,并在+后返回带有三位数的格式化符号:

from decimal import Decimal
def pretty(notation, n):
    if '+' in notation:
        return "+".join([notation.split('+')[0],notation.split('+')[1].zfill(n)])
    return "-".join([notation.split('-')[0],notation.split('-')[1].zfill(n)])

i = '%E' % Decimal(-407.45833)
print(pretty(i,3)) # leave three digits