При работе с Python, особенно его второй версией, часто возникает ситуация, когда нужно поделить одно целое число на другое и получить результат в виде числа с плавающей точкой. Вместо этого Python выполняет целочисленное деление и возвращает целое число.
Приведем пример. Пусть есть два целых числа a
и b
, причем a < b
. При выполнении операции a / b
в Python 2 результат всегда будет равен нулю, поскольку выполняется целочисленное деление.
Такой результат может быть неожиданным, особенно для новичков, только начинающих работу с Python. Но есть простой способ решения этой проблемы — приведение чисел к типу float.
Решение проблемы
Чтобы получить результат деления в виде числа с плавающей точкой, достаточно привести хотя бы одно из чисел к типу float. Это можно сделать с помощью функции float
:
c = float(a) / b
В этом случае Python выполнит деление с плавающей точкой и вернет ожидаемый результат.
Работа с Python 3
Стоит отметить, что в Python 3 поведение деления изменилось. Если в Python 2 деление двух целых чисел без явного приведения типа к float приводит к целочисленному делению, то в Python 3 результат такого деления будет числом с плавающей точкой.
Таким образом, в Python 3 пример, приведенный выше, можно записать так:
c = a / b
В этом случае результатом будет число с плавающей точкой, как и ожидалось.
Знание особенностей работы с делением в Python поможет избежать неприятных сюрпризов и позволит писать более корректный и предсказуемый код.
Добавить комментарий