Обмисли:
>>> 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))