Почему и как JS самостоятельно изменяет числа?

В learn.js приводится пример:

console.log( 9999999999999999 ); // покажет 10000000000000000

В учебнике говорится, что причина такому поведению в том, что отведенных 52 бит на цифры до десятичной запятой не хватает. Я не понимаю. По идее, если не хватает памяти, число наоборот должно уменьшаться, а не наоборот - увеличиваться как это происходит в примере выше (было 16, стало 17 знаков).

P.S. И кстати, насколько я знаю, если числу не хватает отведенной ему памяти, должно выводить Infinity. Почему в этом случае не выводится Infinity?

Может кто-нибудь получше объяснить как это работает?


Ответы (0 шт):