все Python 3mathпонятие
math.fabs
абсолютное
Возвращает абсолютное значение числа как float. В отличие от abs(), всегда возвращает float, а не int.
Синтаксис
math.fabs(x)
В обычном коде почти всегда нужен abs(): он сохраняет тип (int, Decimal, Fraction) и умеет комплексные числа, а fabs() приводит всё к float и на комплексном падает с TypeError. Отсюда и потеря точности: у большого целого fabs() оставит только 53 бита мантиссы, а на очень большом — вообще выбросит OverflowError. Брать fabs() имеет смысл там, где результат всё равно нужен как float, например при сравнении с допуском.
Примеры
import math
print(math.fabs(-5.0)) # → 5.0
print(math.fabs(3.14)) # → 3.14
print(math.fabs(-0.0)) # → 0.0
print(type(math.fabs(-3))) # → <class 'float'> (abs(-3) вернул бы int)
print(math.fabs(-1e100)) # → 1e+100
print(math.fabs(0)) # → 0.0
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности