2017-03-24 44 views
1

我想显示在科学记数法表示:显示在科学记数法的一些具体数字

-407.45833 

到目前为止,我用这个:

 i = '%E' % Decimal(i) 

结果:

-4.074583E+02 

现在我的问题:我怎么能再添加一个数字,所以它看起来像这样:?

-4.074583E+002 

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

+0

,我不相信有该功能......但你可以做到它手动:( – abccd

+0

@abccd如果我改变这个“%.2E”我得到“4.07E + 02”。我希望有一些类似的数字在末尾 – Vipr0

+0

不,不幸的是,不过,你为什么需要那么如果是E + 0123会发生什么?现在有四位数字...... – abccd

回答

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 
+0

完美的作品!谢谢! – Vipr0

+0

这很棒,如果它真的帮助了你,你可以通过检查mark来将我的答案标记为已接受。祝你有美好的一天:) – abccd