2008-09-22 53 views

回答

102

有三個選項:

>>> 4/float(100) 
0.04 
>>> 4/100.0 
0.04 

這是相同的行爲C,C++,JAVA等,或

>>> from __future__ import division 
>>> 4/100 
0.04 

您還可以通過傳遞參數-Qnew Python解釋器激活此行爲

$ python -Qnew 
>>> 4/100 
0.04 

第二個選項將是Python 3.0中的默認選項。如果你想擁有舊的整數除法,你必須使用//運算符。

編輯:添加了關於-Qnew的部分,感謝ΤΖΩΤΖΙΟΥ

+1

也請添加python的可用性-Q new`命令行選項使您的答案更加完整。 – tzot 2008-09-23 09:26:16

+0

這給出了一個浮點值,而不是一個十進制值。看到雕文的答案。 – Jim 2008-09-23 15:19:50

+0

您也可以在源代碼中使用`from __future__ import division`。 – 2012-03-23 04:56:39

1

嘗試4.0/100

1

一個簡單的路線4/100.0

4.0/100

3

你需要告訴Python使用浮點值,而不是整數。你可以簡單地通過自己在投入使用小數點:

>>> 4/100.0 
0.040000000000000001 
7

使條款的一個或兩個浮點數,就像這樣:

4.0/100.0 

或者,打開此功能,這將是在Python 3.0默認情況下,「真師」,那你想要做什麼。在你的模塊或腳本的頂部,這樣做:

from __future__ import division 
0

你不能獲得通過將一個整數與另一個十進制值,你會得到永諾的整數方式(導致截斷整數)。您至少需要一個值作爲十進制數。

+0

請注意,如果您使用/,則在Python 3.0中不會出現這種情況。 – 2008-09-22 20:13:00

23

其他答案建議如何獲得浮點值。雖然這wlil接近你想要什麼,它不會是準確的:

>>> 0.4/100. 
0.0040000000000000001 

如果你真的想要一個十進制值,這樣做:

>>> import decimal 
>>> decimal.Decimal('4')/decimal.Decimal('100') 
Decimal("0.04") 

這會給你一個對象正確地知道在基數10中的4/100是「0.04」。浮點數實際上是以2爲底的,即二進制,而不是十進制。

3

你也可以看看Python的decimal包。這將提供很好的小數結果。

>>> decimal.Decimal('4')/100 
Decimal("0.04") 
-4

請考慮下面的例子

float tot=(float)31/7; 
+3

...這甚至不是Python。 – Moira 2017-04-13 15:50:14

1

在這裏,我們下面

from __future__ import division 

print(4/100) 
print(4//100) 
-3

進口部給從未來圖書館兩種可能的情況是這樣的: