Это потому, что спецификации IEEE 754 определяют его следующим образом.
Однако есть причина для этого: аффинно расширенная система действительных чисел расширяет действительные числа двумя бесконечностями, что дает еще больше возможностей для вычисления с ограничениями . Таким образом, с этим расширением деление на ноль не undefined
или NaN
.
Учтите, что для положительного x верно следующее:
lim x → 0 (x) = lim x → 0 (- x)
Однако следующее не соответствует действительности для положительного x :
lim x → 0 (1 / x) = lim x → 0 (1 / -x)
Обратите внимание, как приведенные выше сравнения с предельной нотацией отображаются в перечислениях, которые вы перечислили:
0 === -0;// true
1/0 === 1/-0;// false
Во-вторых, деление всегда поддерживает следующую инвариантность: результат отрицателен тогда и только тогда, когда ровно один из операндов отрицателен.
Оба эти соображения дают некоторое представление о том, почему в IEEE 754:
1/0 === Infinity
1/-0 === -Infinity