I Shar

I Shar

мир глазами веб-разработчика

JavaScript: когда число слишком большое

особенности работы с целыми числами в JavaScript

I Shar

время чтения 1 мин.

Photo by Richard Lee on Unsplash

Какой результат получится при выводе в консоль большого числа. Например 9999999999999999.

console.log(9999999999999999);

На первый взгляд ответ очевиден: на экране мы увидим именно то целое, число которое и было передано в качестве аргумента.

Но все ли так просто?

Дело в том, что в JavaScript нет целых чисел. Обычные числа хранятся в формате IEEE-754 и называются числами с плавающей точкой двойной точности (double precision floating point numbers). Это означает, что каждое число представляют 64 бита, где 52 бита предназначены для хранения самого числового значения, 11 бит отслеживают положения десятичной точки и 1 бит предназначен для хранения знака числа, определяя положительным или отрицательным является число.

Когда места для хранения значения числа не хватает, оно округляется до ближайшего доступного значения.

Сохранить целое значение 9999999999999999, используя 52 бита, невозможно. Поэтому число округляется до 10000000000000000.

Именно 10000000000000000 пользователь увидит на экране. При этом JavaScript не выведет никаких предупреждений или сообщений об ошибках.


Спасибо за внимание.

    • frontend
    • js

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.