Почему и как JS самостоятельно изменяет числа?
В learn.js приводится пример:
console.log( 9999999999999999 ); // покажет 10000000000000000
В учебнике говорится, что причина такому поведению в том, что отведенных 52 бит на цифры до десятичной запятой не хватает. Я не понимаю. По идее, если не хватает памяти, число наоборот должно уменьшаться, а не наоборот - увеличиваться как это происходит в примере выше (было 16, стало 17 знаков).
P.S. И кстати, насколько я знаю, если числу не хватает отведенной ему памяти, должно выводить Infinity. Почему в этом случае не выводится Infinity?
Может кто-нибудь получше объяснить как это работает?