爲十進制我有蟒蛇的數組,其中包含了一組值,其中有些是轉換指數在python
2.32313e + 07
2.1155e + 07
1.923e + 07
112.32
如何轉換指數格式到十進制格式
其他:有沒有一種方法可以直接將指數轉換爲十進制在UNIX中用awk打印出來?
爲十進制我有蟒蛇的數組,其中包含了一組值,其中有些是轉換指數在python
2.32313e + 07
2.1155e + 07
1.923e + 07
112.32
如何轉換指數格式到十進制格式
其他:有沒有一種方法可以直接將指數轉換爲十進制在UNIX中用awk打印出來?
我想你有一個列表而不是一個數組,但在這裏沒有太大區別;在2.6和更早版本的Python,是這樣的:
>>> L = [2.32313e+07, 2.1155e+07, 1.923e+07, 11856, 112.32]
>>> for x in L: print '%f' % x
...
23231300.000000
21155000.000000
19230000.000000
11856.000000
112.320000
在2.6或更高版本,該.format
方法。我想你知道,數字本身作爲數字並不是任何「格式」 - 它是通過格式化數字獲得的字符串,例如,用於輸出,具有某種格式。順便說一下,%f
的變種可以讓你控制小數,寬度,對齊等的數量 - 很難建議你可能想要什麼,沒有你的進一步規格。可以使用。
您可以使用locale.format()來格式化輸出的數字。這還有一個額外的好處,就是可以與數字表示中預期的任何特定於語言環境的約定保持一致。如果你想在你做輸出的特定位置完全控制,你最好用打印「格式」%變量...variant。
例子:
>>> import locale
>>> locale.setlocale(locale.LC_ALL, "")
'C/UTF-8/C/C/C/C'
>>> locale.format("%f", 2.32313e+07, 1)
'23231300.000000'
在回答你的問題,awk
可以使用相同的printf
格式的最後一部分:
awk '{printf "%f\n",$1}' exponential_file
其中exponential_file包含:
2.32313e+07
2.1155e+07
1.923e+07
11856
112.32
你可以轉換成變量供以後使用。這裏是一個簡單的例子:
awk '{n = sprintf("%f\n",$1); print n * 2}' exponential_file
你想轉換爲字符串表示一個具有一定精度的浮點數嗎? – SilentGhost 2009-10-15 15:24:21
是的。並且精度可以是任何數字 – randomThought 2009-10-15 15:26:49
*任何數字*表示什麼?你知道這個號碼嗎? – SilentGhost 2009-10-15 15:29:21