Почему это подразделение не работает в Python? [дубликат]

Псевдонимы требуются при присоединении к таблицам со столбцами, которые имеют идентичные имена.

10
задан Peter Mortensen 22 February 2017 в 02:46
поделиться

4 ответа

До версии 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
28
ответ дан 3 December 2019 в 14:06
поделиться

В Python 2.x деление работает так же, как в C-подобном языки: если оба аргумента являются целыми числами, результат обрезается до целого числа, поэтому 29/1009 равно 0. 0, поскольку число с плавающей запятой равно 0.0. Чтобы исправить это, приведите к типу числа с плавающей запятой перед делением:

print str(float(numerator)/denominator)

В Python 3.x деление действует более естественно, поэтому вы получите правильный математический результат (в пределах ошибки с плавающей запятой).

8
ответ дан 3 December 2019 в 14:06
поделиться

В своей оценке вы приводите результат, вместо этого вам нужно приводить операнды.

1
ответ дан 3 December 2019 в 14:06
поделиться
print str(float(numerator)/float(denom))
0
ответ дан 3 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: