Ответ на этот вопрос может быть до боли очевиден, но я не могу найти его ни в документах 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
?