BigInt в JavaScript: как работать с большими числами
-
BigInt
— это специальный числовой тип в JavaScript, который позволяет работать с очень большими целыми числами, больше, чемNumber.MAX_SAFE_INTEGER
.
Почему нужен
BigInt
?Обычные числа (
number
) в JavaScript — это 64-битные дроби по стандарту IEEE-754.
Они точны только до:Number.MAX_SAFE_INTEGER // 9007199254740991 (≈9 квадриллионов)
Если число больше — оно может потерять точность:
console.log(9007199254740992 + 1); // 9007199254740992 ❌ (не изменилось!)
Вот тут и пригодится
BigInt
.
Как создать
BigInt
?Добавь
n
в конце числа:let big = 1234567890123456789012345n;
Или через функцию
BigInt()
:let big = BigInt("1234567890123456789012345");
Как привести
number
вBigInt
?Используй функцию
BigInt()
:let num = 42; let big = BigInt(num); // 42n
️ Нельзя приводить дробные числа:
BigInt(3.14); // Ошибка! Дроби не поддерживаются
Как привести
BigInt
обратно вnumber
?Используй
Number()
:let big = 100n; let num = Number(big); // 100
️ Осторожно! Если
BigInt
слишком большой — потеряешь точность:let big = 9007199254740992n; let num = Number(big); // 9007199254740992 — может выглядеть нормально, // но уже за пределами безопасной зоны
Преобразование в
number
— рискованно, если число огромное.
Ограничения и особенности
BigInt
Особенность Что нужно знать Только целые числа Дробные не поддерживаются: 1.5n
→ ошибкаНе работает с Math
Math.sqrt()
,Math.random()
и др. — не работают сBigInt
Нельзя смешивать с number
в операциях10 + 5n
→ ошибка!Сравнения ( <
,>
,===
) работают5n < 10
→true
,5n === 5
→false
typeof
возвращает"bigint"
typeof 5n
→"bigint"
Примеры работы:
let a = 10n; let b = 20n; console.log(a + b); // 30n console.log(b - a); // 10n console.log(a * 3n); // 30n console.log(a < 15); // true // ❌ Ошибка: // console.log(a + 5); // нельзя складывать bigint и number
Сначала приведи к одному типу (но аккуратно!):
console.log(a + BigInt(5)); // 15n ✅ console.log(Number(a) + 5); // 15 ✅ (но может быть потеря точности)
Когда использовать
BigInt
?- При работе с очень большими числами: криптография, ID, научные расчёты
- Когда важна абсолютная точность для целых чисел
- В библиотеках, где числа выходят за пределы
MAX_SAFE_INTEGER
Итог:
Что Как Создать BigInt
123n
илиBigInt(123)
number
→BigInt
BigInt(num)
(только целые!)BigInt
→number
Number(big)
— с риском потери точностиОперации Только с другими BigInt
Ограничения Нет дробей, нет Math
, нельзя смешивать сnumber
BigInt
— мощный инструмент, но используй его только когда действительно нужно.
Для обычных задач — хватит обычных чисел (number
). -
E evo переместил эту тему из Языки программирования
-
-
-
-
Как привести строку к массиву
Перенесена JavaScript -
-
-
-
© 2025 eduity.ru, Inc. Все права защищены.