2015-12-03 69 views
3
>>> '{:0.10}'.format(1/3) 
'0.3333333333' 
>>> '{:0.10}'.format(100/3) 
'33.33333333' 

第一個給出小數點後的10位數,第二個給出8. 「精度」是指總數字嗎?如何僅在小數點後控制有效數字?Python 3.3.5浮點格式精度

+0

https://docs.python.org/3/library/string.html#format-specification-mini-language – MattDMo

回答

3

您需要包括的類型f(浮法)小數點後的控制的位數:

>>> '{:.10f}'.format(100/3) 
'33.3333333333' 

如果不指定類型,巨蟒回落到普通號碼類型,號碼是四捨五入到指定的有效位數。從documentation

精度是指示多少位數應的小數點與「f」和「F」被格式化的浮點值之後顯示一個十進制數,或之前和的小數點後用'g'或'G'格式化的浮點值。

+0

如果精度只是指定字符串的最大大小,我們會看到一個少數字。我們在小數點後面看到8位數的原因是因爲浮點數的未指定表示類型將精度值視爲大體上與'g'相同,這意味着小數點前後的數字。 – user2357112

+0

是的,謝謝,我提到了那裏的文檔的錯誤部分(現在已修復)。 –

+0

明白了。謝謝你的幫助。 –