Карточка Junior Типы и приведение обновлено

Number.MAX_SAFE_INTEGER

Вопрос

Что такое Number.MAX_SAFE_INTEGER и почему он такой?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Это 2^53 - 1 = 9007199254740991, наибольшее целое, до которого все целые представимы в number точно. number это 64-битное число с плавающей точкой с 52 битами мантиссы, поэтому дальше соседние целые склеиваются. Для больших целых (id из базы, суммы в копейках крупного масштаба) используют bigint или строки.

Ответ

Это 2^53 - 1 = 9007199254740991, наибольшее целое, до которого все целые представимы в number точно. number это 64-битное число с плавающей точкой с 52 битами мантиссы, поэтому дальше соседние целые склеиваются. Для больших целых (id из базы, суммы в копейках крупного масштаба) используют bigint или строки.

Разбор

Проверить, что число безопасно: Number.isSafeInteger(x).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме