Часто возникает задача ограничить количество знаков после запятой в числе с плавающей точкой. Например, есть число 13.949999999999999, и требуется округлить его до двух знаков после запятой, чтобы получить 13.95.
При попытке использовать стандартную функцию round()
, результат может быть неожиданным:
a = 13.949999999999999 print(round(a, 2)) # Вывод: 13.949999999999999
Так происходит из-за особенностей внутреннего представления чисел с плавающей точкой в компьютере.
Один из способов решения этой проблемы — использовать форматирование строк. В Python для этого есть несколько способов.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Использование функции format()
a = 13.949999999999999 print(format(a, '.2f')) # Вывод: 13.95
В этом случае, число a
преобразуется в строку, где количество знаков после запятой ограничено двумя.
Использование f-строк
a = 13.949999999999999 print(f'{a:.2f}') # Вывод: 13.95
F-строки — это способ форматирования строк, который доступен начиная с версии Python 3.6.
На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.
Использование метода round()
класса Decimal
from decimal import Decimal a = Decimal('13.949999999999999') print(round(a, 2)) # Вывод: 13.95
В этом случае используется класс Decimal
из модуля decimal
, который предоставляет более точное представление чисел с плавающей точкой.
Добавить комментарий