Найти в Дзене
programmer's notes (python and more)

Не много о типе float. Дополнение к подборке "Базовый курс программирования на Python"

Оглавление

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Стандартные возможности работы с вещественными числами

Написал несколько постов по стандартной библиотеке math и вспомнил, что в базовом курсе по Python не осветил (почти) вопрос работы с вещественными типами данных (float). Ну ничего, дополним базовый курс.

float в языке программирования Python

Числа float это вещественные числа или числа с плавающей точкой. Откуда они появляются в программе?

1. Мы можем присвоить переменной число с плавающей точкой

a = 12.4567

и далее переменная a будет иметь тип float.

2. С помощью функции float().

s = '12.89'
a1 = float(s)
i = 100
a2 = float(i)
print(a1, a2)

Результат выполнения фрагмента программы

12.89 100.0

3. При выполнении операции деления над целыми числами, оператор '/'.

f = 100 / 40
print(f)

результат выполнения

2.5

4. Выполнение арифметических выражений, где присутствуют числа float.

f = (12 + 1.1) * 10
print(f)

Результат выполнения

131.0

Средства работы с типом float

Над числами с плавающей точкой можно выполнять весь набор арифметических действий: '+', '-', '*', '/'. Можно также использовать операцию возведения в степень

a = 1.1
b = 3.4
c = a ** b
print(c)

Результат выполнения фрагмента

1.382722817396187

Кстати операции, обычно используемые к целым числам: '//' и '%' также доступны, но мы на них останавливать не будем, в виду специфичности их использования. Попробуйте сами.

Важное замечание
Когда вы используете в программе числа с плавающей точкой, то интерпретатор для выполнения действия используются команды процессора. Но команды процессора осуществляются с числами в двоичном формате. При этом может быть потеряна точность. Ну, а дальнейшие действия могут только усугубить ситуацию. Не забывайте об этом и будьте осторожны сравнивая вещественные типы с помощью '=='. Используем средства
math.

Есть не большой набор функций, которые можно использовать с типом float.

Конечно, это функция abs(), которая возвращает абсолютное значение числа, отбрасывая минус, число отрицательное.

Но самая полезная функция это функция round(). Эта функция округляет вещественное число. Остановимся на этой функции подробнее.

Функция round() округляет вещественное число, до указанного количество знаков после запятой. Функция имеет два параметра. Первый параметр это округляемое число. Второй количество остающихся цифр после точки. Если второго параметра нет, то по умолчанию он считается равным нулю.

Правила округления следующее. Если последняя цифра после запятой >= 5, то цифра отбрасывается, а к предыдущей цифре добавляется 1. В противном случае единица отнимается.

a = 123.4565
b = 234.01
c = 0.994
print(round(a), round(a, 3))
print(round(b, 1))
print(round(c, 1))

Результат выполнения фрагмента

123 123.457
234.0
1.0

Надо иметь в виду, что float не только функция, но и класс, имеющий набор методов. Опишем некоторые из них.

  • as_integer_ratio() — возвращает кортеж, в котором первый элемент числитель, а второй знаменатель дроби, представляющий данное число. Например
    print(float.as_integer_ratio(4.5))
    Результат
    (9, 2)
  • is_integer() — возвращает True, если дробная часть числа равна нулю и False, если дробная часть нулю не равна.
    print(float.is_integer(4.0))
    print(float.is_integer(1.001))

    Результат
    True
    False
  • float.hex() возвращает шестнадцатеричное представление вещественного числа.
  • float.hex() — производит преобразование обратное hex().

Методы класса float можно использовать для объектов float. Например

a = float.as_integer_ratio(34.5)
print(a)
b = 34.5
c = b.as_integer_ratio()
print(c)

Результат

(69, 2)
(69, 2)

Кого заинтересовала работа с вещественными числами рекомендую статьи

Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

- Кому нужна ваша программа? - Я получил удовольствие от её написания.
- Кому нужна ваша программа? - Я получил удовольствие от её написания.