Сообщение от devote
|
на самом деле оно у вас в голове целое, как и у нас тоже.. но не в JavaScript у него извините нет столько памяти что бы держать огромные числа с высокой точностью. Он выделяет память под число, и если оно не лезет в выделенный размер, он его режет, от того точность числа сразу же теряется, и для JavaScript оно становится не целым.
|
В Джаваскрипте числовые значения хранятся в формате double-precision, в котором числа записываются до 52-го двоичного знака после плавающей запятой. Вообще, целые числа для записи в этот формат всегда округляются в целые (или +/-Infinity), но более того, в данном случае числовое значение литерала 1e21 будет в точности 10^21, так как 10^21 меньше 2^70 и делится на 2^21, то есть все единицы в двоичной записи числа 10^21 находятся с 21-го по 69-ый разряды, что в разности даёт не больше 52.