Ответ на этот вопрос может быть до боли очевиден, но я не могу найти его ни в документации Mozilla, ни в Google при беглом поиске.
Если у вас есть код, подобный этому
Number.MAX_VALUE + 1; // Infinity, right?
Number.MIN_VALUE - 1; // -Infinity, right?
, то я ожидаю, что добавление чего-либок Number.MAX_VALUE подтолкнет его к Infinity
. В результате просто Number.MAX_VALUE
плюнул мне в ответ.
Однако, играя в консоли Chrome JS, я заметил, что на самом деле он не стал Infinity
, пока я не добавил/вычел достаточное количество:
Number.MAX_VALUE + Math.pow(100,1000); // now we hit Infinity
Number.MIN_VALUE - Math.pow(100,1000); // -Infinity at last
Чем объясняется этот «буфер» между Number.MAX_VALUE
и Infinity
?