2015-07-18 48 views
0

我在將數值格式化爲固定寬度列時遇到問題。我想產生這樣的文本列:Python - 將數值格式化爲特定列寬

10 7 9.215600 -1.921500 0.000000 -9.215600 -1.921500 0.000000 0.012810 
11 9 -10.66190 -2.066200 0.000000 -10.66190 2.066200 0.000000 0.013770 

我已經試過

" {:2d} {:4d} {:9f} {:9f} {:9f} {:9f} {:9f} {:9f} {:9f}".format(...) 

,輸出:

10 7 9.215600 -1.921500 0.000000 -9.215600 -1.921500 0.000000 0.012810 
11 9 -10.661900 -2.066200 0.000000 -10.661900 2.066200 0.000000 0.013770 

我也曾嘗試

"{:3d}{:5d}{:10f}{:10f}{:10f}{:10f}{:10f}{:10f}{:10f}".format(...) 

它輸出:

10 7 9.215600 -1.921500 0.000000 -9.215600 -1.921500 0.000000 0.012810 
11 9-10.661900 -2.066200 0.000000-10.661900 2.066200 0.000000 0.013770 

任何人都知道我可以如何得到頂部顯示的結果?似乎應該很容易,但我似乎無法弄清楚。

+0

你必須考慮數字的長度 –

回答

0

似乎有一個問題,你想如何格式化數字。

你希望在那裏始終有一個爲負號保留的空間,即使它不存在。除了檢查負數的特定代碼外,我不確定可以單獨使用字符串格式。

也就是說,有辦法可以接近你想要的東西。嘗試

"{:3d}{:5d}{:-10f}{:-10f}..." 

其中所有浮動寬度都是負值而不是正值。

+0

謝謝你的建議。但是,這實際上並不是我想要的。標誌的默認行爲很好。似乎我所嘗試的問題是小數精度需要改變。 – nalyd88