Почему 1/0 = Бесконечность и 1 / -0 = -Бесконечность - PullRequest
0 голосов
/ 03 ноября 2018

Почему это так:

1 === 1;// true
0 === -0;// true
1/0 === 1/-0;// false

Причина:

1/0=Infinite;
1/-0=-Infinite;

Вопрос:

Почему не 1/0 или 1 / -0 Не определено или NaN ?

Это не может быть Бесконечность или -Infinity, потому что 0 равно -0, поэтому я должен сказать, что 1/0 равно 1 / -0, но почему это не так? И почему это не Undefined (что говорит мой калькулятор) или NaN.

1 Ответ

0 голосов
/ 03 ноября 2018

Это потому, что спецификации 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...