Почему мой код работал только тогда, когда я превратил divisor в float?Python - Divide работает только при использовании с плавающей запятой для divisor
a = 50/1000.0*100
Когда я сделал ниже, возвратил 0.
a = 50/1000*100
Почему мой код работал только тогда, когда я превратил divisor в float?Python - Divide работает только при использовании с плавающей запятой для divisor
a = 50/1000.0*100
Когда я сделал ниже, возвратил 0.
a = 50/1000*100
50/1000 0 в Python 2.x, потому что деление чисел предполагает, что вы хотите целочисленные результаты. Если вы преобразуете числитель или знаменатель в float, вы получите правильное поведение. В качестве альтернативы вы можете использовать
from __future__ import division
, чтобы получить питона 3.x семантику.
Когда оба операнда являются целыми числами в Python 2, a/b
- это то же самое, что и у a//b
, что означает, что вы получаете целочисленное деление. 50/1000
- 0 в этом случае (с остатком 50, как вы можете видеть из возвращаемого значения divmod(50, 1000)
).
если вы используете Python 2.x выше результат пришел -х, если результат использования Python 3.x является
Python 3.4.3 (default, Jul 28 2015, 18:24:59)
[GCC 4.8.4] on linux
>>> a = 50/1000*100
>>> a
5.0
>>> a = 50/1000.0*100
>>> a
5.0
>>>
Возможный дубликат [разделения Python] (http://stackoverflow.com/questions/2958684/python -division) – dfeuer