Python 3.15+Числа и математикафункция
math.signbit()
представление
True, если у float установлен бит знака. Отличает -0.0 от 0.0 и определяет знак у бесконечностей и NaN, где x < 0 не помогает.
Синтаксис
math.signbit(x)
-0.0 == 0.0 истинно, и -0.0 < 0 ложно, хотя знак у нуля есть и влияет на результат: 1 / -0.0 в numpy даёт -inf, atan2(0.0, -0.0) равно pi. Раньше знак проверяли через math.copysign(1, x) < 0; signbit делает это прямо. Работает и для NaN: знак у NaN бывает, но сравнения с ним всегда ложны.
Примеры
import math
print(-0.0 < 0, math.signbit(-0.0)) # → False True
print(math.signbit(0.0), math.signbit(float('-inf'))) # → False True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности