2009-06-08 94 views
-5

我的投入是3.23,但是當我使用就可以了浮動,就變成3.2,蟒蛇格式化浮點數

當我輸入的是3.00,當我做浮在上面,就變成3.0

當我轉換爲字符串浮動,我仍然希望它是3.00而不是3.0 是否有可能? 我想知道代碼使它成爲可能,當我在做一個小數點直到2位數問題的問題時,3.23優於3.2,以獲得更高的精度

+6

http://stackoverflow.com/questions/964369/quick-python-question你碰巧在同一類;) – 2009-06-08 11:06:55

回答

1

我想你想要的是將浮點數轉換爲你想要的小數位數的字符串。你可以做到這一點使用%.3f(這裏3是要打印的小數位數,例如:

>>> print "Value: %.2f" % 3.0000 

值:3.00

1

如果要小數精度使用python decimal模塊:

from decimal import Decimal 
x = Decimal('3.00') 
print x 

,打印:

Decimal('3.00') 
0

如果您想打印一個浮點數到所需的精度可以使用輸出格式代碼如下所示:

假設X = 3.125

print "%.1f" % (x) # prints 3.1 
print "%.2f" % (x) # prints 3.12 
print "%.3f" % (x) # prints 3.125 
print "%.4f" % (x) # prints 3.1250 

這將在Python 2.6的工作(我認爲他們改變了3版打印功能)。

你也應該認識到浮點數只能以一定的精度存儲,所以有時你不會得到完全相同的數字。例如0.1可以存儲爲0.9999999987之類的東西。

3

由於這線程先上寫着「字符串格式化小數蟒蛇」,我認爲這是很好的提供了更近的答案:

>>> P=34.3234564 
>>> string="{:.2f}".format(P) 
>>> string 
'34.32'