2012-12-17 86 views
3

我想弄清楚如何打印四捨五入到有效數字的格式化字符串。說我有:在Python中格式化整數和浮動內部字符串

x = 8829834.123 

而我想打印它舍入爲四個字母,作爲一個整數。 我想:

print "%4d"%x 

,我只是得到:

8829834 

爲什麼不會它顯示:

8829000? 

我認爲這是字符串格式化是如何工作的。

+0

看看這個問題:http://stackoverflow.com/questions/3348825/how-to-round-intege RS-中,蟒蛇。 您可以考慮使用round(),如接受的答案中所述。 – Bharat

+0

可能重複? http://stackoverflow.com/questions/9415939/how-can-i-print-many-significant-figures-in-python –

回答

2

格式說明不支持整數四捨五入,可能有一些解決方案,但沒有現成的,這裏有他們夫婦

>>> print "{:d}000".format(int(x/1000)) 
8829000 
>>> print "{:d}".format(int(round(x,-3))) 
8830000 
+0

如果'x'具有不同的數量級,它不會產生四捨五入爲有效數字的結果例如'123456789' – jfs

4

四捨五入到4個顯著數字:

f = float("%.4g" % 8829834.123) 

以整數形式打印:

print "%.0f" % f 
# -> 8830000