/ / Защо това разделение не работи в Python? [дубликат] - питон, числа

Защо тази дивизия не работи в Python? [дубликат] - питон, числа

Обмисли:

>>> numerator = 29
>>> denom = 1009
>>> print str(float(numerator/denom))
0.0

Как мога да го върна след десетичната запетая?

Отговори:

26 за отговор № 1

До версия 3, операторът на Python, /,се държи като оператор на C разделение, когато е представен с две цели числа: той връща цяло число резултат, който "е пресечен надолу, когато ще има частична част. Виж: PEP 238

>>> n = 29
>>> d = 1009
>>> print str(float(n)/d)
0.0287413280476

В Python 2 (и може би по-рано) можете да използвате:

>>> from __future__ import division
>>> n/d
0.028741328047571853

8 за отговор № 2

В Python 2.x, разделянето работи както в C-подобните езици: ако и двата аргумента са цели числа, резултатът се съкращава до цяло число, така че 29/1009 е 0. 0, като float е 0.0. За да го поправите, хвърлете на плувка преди разделянето:

print str(float(numerator)/denominator)

В Python 3.x делението действа по-естествено, така че ще получите правилния математически резултат (в рамките на грешка с плаваща запетая).


1 за отговор № 3

В оценката си карате резултата, а вместо това трябва да хвърлите операндите.


0 за отговор № 4
print str(float(numerator)/float(denom))