Spec-Zone.ru › JavaScript

Number.isSafeInteger()

Базовый уровень Широко доступен

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна в браузерах с июля 2015 года.

Статический метод Number.isSafeInteger() определяет, является ли предоставленное значение числом, которое представляет собой безопасное целое число.

Попробуйте

function warn(x) {
  if (Number.isSafeInteger(x)) {
    return "Precision safe.";
  }
  return "Precision may be lost!";
}

console.log(warn(2 ** 53));
// Expected output: "Precision may be lost!"

console.log(warn(2 ** 53 - 1));
// Expected output: "Precision safe."

Синтаксис

Number.isSafeInteger(testValue)

Параметры

testValue
Значение для проверки на безопасность целочисленного представления.

Возвращаемое значение

Логическое значение true, если данное значение является числом, которое представляет собой безопасное целое число. В противном случае false.

Описание

Безопасные целые числа включают все целые числа от -(253 - 1) до 253 - 1, включительно (±9,007,199,254,740,991). Безопасное целое число — это целое число, которое:

  • может быть точно представлено как число с двойной точностью по стандарту IEEE-754, и
  • представление IEEE-754 которого не является результатом округления какого-либо другого целого числа для соответствия представлению IEEE-754.

Например, 253 - 1 является безопасным целым числом: оно может быть точно представлено, и никакое другое целое число не округляется до него ни в одном из режимов округления IEEE-754. В отличие от этого, 253 не является безопасным целым числом: оно может быть точно представлено в IEEE-754, но целое число 253 + 1 не может быть напрямую представлено в IEEE-754, вместо этого оно округляется до 253 при округлении к ближайшему и округлении к нулю.

Для работы со значениями, превышающими или меньшими примерно 9 квадриллионов, с полной точностью требуется использовать библиотеку арифметики произвольной точности. Дополнительную информацию о представлениях чисел с плавающей запятой см. в What Every Programmer Needs to Know about Floating Point Arithmetic.

Для больших целых чисел рассмотрите возможность использования типа BigInt.

Примеры

Использование isSafeInteger()

Number.isSafeInteger(3); // true
Number.isSafeInteger(2 ** 53); // false
Number.isSafeInteger(2 ** 53 - 1); // true
Number.isSafeInteger(NaN); // false
Number.isSafeInteger(Infinity); // false
Number.isSafeInteger("3"); // false
Number.isSafeInteger(3.1); // false
Number.isSafeInteger(3.0); // true

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-number.issafeinteger

Совместимость с браузерами

Настольные ПК Мобильные Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
isSafeInteger
34
12
32
21
9
34
32
21
9
2.0
37
9
1.0.0
1.0
0.12.0

См. также

  • Polyfill для Number.isSafeInteger в core-js
  • es-shims polyfill для Number.isSafeInteger
  • Number
  • Number.MIN_SAFE_INTEGER
  • Number.MAX_SAFE_INTEGER
  • BigInt

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API