Разница между "a//b" и "int(a/b)"

Я знаю a/b является делением с плавающей точкой и a//b это разделение пола в Python.
Видно что int(a/b) также результат, аналогичный делению по полу, если числители и знаменатели являются положительными числами. Но при попытке -a//b а также int(-a/b) дают разные результаты. Каковы внутренние операции?

>>> int(-5/3)
-1
>>> -5//3
-2

Насколько отличается int(a/b) из эквивалентного этажа, т. е. a//b ?

1 ответ

Решение

Из int документы:

Для чисел с плавающей запятой это усекается до нуля.

Из // документы:

При делении целых чисел получается число с плавающей точкой, а при делении целых чисел по полу - целое число; результатом является математическое деление с применением функции "floor" к результату.

Другие вопросы по тегам