Почему Math.log (0) дает -Infinity в JavaScript? - PullRequest
0 голосов
/ 29 сентября 2018

Когда мое значение Math.log становится равным нулю, оно дает значение -Infinity.Почему это дает отрицательное значение бесконечности?Почему только дает-бесконечность, а скорее дает бесконечность.Почему только 0 значение дает этот результат.

console.log(Math.log(0))

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

Принципиально, потому что именно так указано :

20.2.2.20 Math.log ( x )

Возвращает зависящее от реализации приближение натурального логарифма x.

  • Если x равен NaN, результат равен NaN.
  • Если x меньше 0, результат равен NaN.
  • Если x равен+0 или -0, результат равен -∞.
  • Если x равен 1, результат равен + 0.
  • Если x равен + ∞, результат равен + ∞.

(мой акцент)

Но более конкретно, log(x) по мере приближения x 0 уменьшается безсвязанный .Так что -Infinity кажется разумным выбором для спецификации.

0 голосов
/ 29 сентября 2018

Поскольку журнал 0 не определен, и поэтому они реализовали его таким образом.

console.log (Infinity);/ * Infinity * /

console.log (Infinity + 1);/ * Infinity * /

console.log (Math.pow (10, 1000));/ * Infinity * /

console.log (Math.log (0));/ * -Infinity * /

console.log (1 / Infinity);/ * 0 * /

Характеристики: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Infinity#Beispiele

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...