2017-05-07 68 views
-4

使用Python 2.7。如果我想減去120.00 - 30,我得到90.0,但我想要90.00。我試過使用格式功能:如何將0添加到浮點數?

a = 120.00 - 30 
format(a, '.2f') 

它給了我一串'90.00',但我不想要一個字符串。我需要一個2精度點的小數點,例如:90.00。

+0

然後圓剛(在一般情況下,在這裏沒有必要),並宣讀了浮點邏輯來理解內部發生了。你真正想要達到的目標並不十分清楚。使用經典的浮動,沒有你描述的概念。 – sascha

+5

你能寫下你爲什麼要這樣嗎?這個問題令人困惑,因爲'.00'只對字符串表示很重要。作爲數字'90','90.0','90.00'是同樣的事情。如果我們知道你的用例,它可能會更容易回答。 – viraptor

+1

不知道你在問什麼。如果你想要一個浮點數,90.00和90.0之間沒有區別,但是如果你想要字符串,那麼就有一個區別。 –

回答

1

浮點不支持精確配置,只能舍入和格式化。您應該使用十進制來代替:

>>> from decimal import * 
>>> getcontext().prec = 2 
>>> Decimal(1)/Decimal(7) 
Decimal('0.14') 

Python的十進制:https://docs.python.org/2/library/decimal.html

+1

我可以使用它來減去小數嗎?例如,我想減去:120.00 - 30 - .50,我需要的答案是89.50 – johnnewbie

+1

當然,它支持所有算術運算。這是一個例子:http://stackoverflow.com/a/36541853/194932 – Raphael