xlabel - subplot title python




我怎樣才能迫使部門成為浮點? 司保持四捨五入到0 (9)

我有兩個整數值ab ,但我需要它們的浮點比例。 我知道a<b和我想計算a/b ,所以如果我使用整數除法,我總是會得到0,餘數為a

我如何強制c在Python中成為浮點數字?

c = a / b

我如何強制部門成為Python中的浮點?

我有兩個整數值a和b,但我需要它們的浮點比例。 我知道一個<b和我想計算a / b,所以如果我使用整數除法,我總是會得到0,餘數為a。

我如何強制c在Python中成為浮點數字?

c = a / b

這裡真正要問的是:

“我如何強制真正的分裂,使a / b將返回一小部分?”

升級到Python 3

在Python 3中,要獲得真正的分區,只需執行a / b

>>> 1/2
0.5

地板部門,整數的經典劃分行為,現在a // b

>>> 1//2
0
>>> 1//2.0
0.0

但是,您可能會被Python 2卡住,或者您可能正在編寫必須在2和3中工作的代碼。

如果使用Python 2

在Python 2中,它並不那麼簡單。 處理經典Python 2版本的一些方法比其他方法更好,更強大。

推薦Python 2

您可以在任何給定模塊中獲得Python 3劃分行為,並在頂部輸入以下內容:

from __future__ import division

然後將Python 3樣式劃分應用於整個模塊。 它也可以在任何給定點的python shell中運行。 在Python 2中:

>>> from __future__ import division
>>> 1/2
0.5
>>> 1//2
0
>>> 1//2.0
0.0

這確實是最好的解決方案,因為它可以確保模塊中的代碼與Python 3更加兼容。

Python 2的其他選項

如果您不想將其應用於整個模塊,則僅限於幾個解決方法。 最流行的方法是將其中一個操作數強制為一個浮點數。 一個強大的解決方案是a / (b * 1.0) 。 在新鮮的Python shell中:

>>> 1/(2 * 1.0)
0.5

truediv來自operator.truediv(a, b) truediv ,但是這可能會比較慢,因為它是一個函數調用:

>>> from operator import truediv
>>> truediv(1, 2)
0.5

不推薦用於Python 2

常見的是a / float(b) 。 如果b是一個複數,這將引發TypeError。 由於用複數進行劃分是有意義的,因此在傳遞一個複數給除數時不會出現除法失敗。

>>> 1 / float(2)
0.5
>>> 1 / float(2j)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't convert complex to float

對我來說,有目的地讓你的代碼變得更脆弱並沒有什麼意義。

你也可以用-Qnew標誌來運行Python,但是這有一個缺點,那就是執行所有Python 3新行為的模塊,並且你的一些模塊可能會需要經典的劃分,所以除了測試以外,我不建議這樣做。 但要證明:

$ python -Qnew -c 'print 1/2'
0.5
$ python -Qnew -c 'print 1/2j'
-0.5j

這也會起作用

你= 1/5打印你

0.2

回答13年12月24日在19:58 Gaurav Agarwal 6,7172279140

感謝Gauraw,這個技巧並且是一個很好的解決方案。 在分子和分母都是變量的情況下,“解”可能乘以商數1。

例:

aa = 2
bb = 3

aa / bb = 0

1. * aa / bb = 0.6666666666666666

;-)

Max - 意大利


在Python 3.x中,單斜杠( / )總是表示真(非截斷)分割。 ( //運算符用於截斷除法。)在Python 2.x(2.2及更高版本)中,您可以通過將一個

from __future__ import division

在你的模塊的頂部。


如果你做了兩個整數的除法,python會返回一個整數,那麼你需要這樣做:

c = float(a)/b

要么

c = a/float(b)

然後將c作為float類型


您可以通過執行c = a / float(b) 。 如果分子或分母是一個浮點數,那麼結果也是。

需要注意的是,正如評論者指出的,如果b可能不是整數或浮點數(或代表一個字符串的字符串),那麼這將不起作用。 如果您可能正在處理其他類型(如復數),則需要檢查這些類型或使用其他方法。


添加一個點( . )來指示浮點數

>>> 4/3.
1.3333333333333333

要么

>>> from __future__ import division
>>> 4/3
1.3333333333333333

>>> from __future__ import division
>>> a = 4
>>> b = 6
>>> c = a / b
>>> c
0.66666666666666663

c = a / (b * 1.0)

from operator import truediv

c = truediv(a, b)

a是分紅,b是除數。 當兩個整數相除後的商是浮點數時,該函數非常方便。





python-2.x