Python 3.15+mathфункция
math.fmax()
сравнение
Большее из двух float, где NaN считается пропуском: fmax(nan, 1.0) даёт 1.0, тогда как max() с NaN ведёт себя непредсказуемо.
Синтаксис
math.fmax(x, y)
Встроенный max() сравнивает через <, а любое сравнение с NaN ложно, поэтому результат зависит от порядка: max(nan, 1.0) — nan, а max(1.0, nan) — 1.0. fmax по стандарту C игнорирует NaN, если второе значение число, и возвращает NaN, только если оба NaN. Для нулей знак результата не гарантирован: fmax(0.0, -0.0) может вернуть любой из них. Работает только с двумя аргументами и всегда возвращает float.
Примеры
import math
nan = float('nan')
print(math.fmax(nan, 1.0), math.fmax(1.0, nan)) # → 1.0 1.0
print(max(nan, 1.0), max(1.0, nan)) # → nan 1.0 — max зависит от порядка
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности