Number.isSafeInteger()
Метод Number.isSafeInteger()
визначає, чи є надане значення безпечним цілим числом.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Безпечним цілим числом вважається ціле число, яке
- може бути точно відображене як число IEEE-754 подвійної точності, і
- чиє відображення IEEE-754 не може бути результатом округлення іншого цілого числа для відповідності відображенню IEEE-754.
Наприклад, 253 - 1
є безпечним цілим числом: воно може бути точно відображене, і жодне інше ціле число не округлюється до нього в будь-якому режимі округлення IEEE-754. Для контрасту, 253
не є безпечним цілим числом: воно може бути точно відображене у IEEE-754, але ціле число 253 + 1
не може бути безпосередньо відображене у IEEE-754, а, натомість, округлюється до 253
під час округлення до найближчого цілого та округлення до меншого за модулем. Безпечні цілі числа включають усі цілі числа від -(253 - 1)
включно до 253 - 1
включно (± 9007199254740991
або ± 9,007,199,254,740,991).
Робота зі значеннями, більшими чи меншими за ~9 квадрільйонів, з повною точністю вимагає використання бібліотеки для арифметики довільної точності. Дивіться Що необхідно знати кожному програмісту про арифметику чисел з рухомою крапкою, щоб дізнатись більше щодо відображення чисел з рухомою крапкою.
Для більших чисел розгляньте використання типу BigInt
.
Синтаксис
Number.isSafeInteger(testValue)
Параметри
testValue
- Значення, що перевірятиметься на відповідність безпечному цілому числу.
Значення, що повертається
Значення Boolean
, яке вказує, чи є надане значення безпечним цілим числом.
Поліфіл
Number.isSafeInteger = Number.isSafeInteger || function (value) {
return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;
};
Приклади
Використання isSafeInteger
Number.isSafeInteger(3); // true
Number.isSafeInteger(Math.pow(2, 53)); // false
Number.isSafeInteger(Math.pow(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
Специфікації
Сумісність з веб-переглядачами
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Див. також
- Об'єкт
Number
, якому належить цей метод. Number.MIN_SAFE_INTEGER
Number.MAX_SAFE_INTEGER
BigInt