JS метод Number.isSafeInteger()
Загальний опис
Метод Number.isSafeInteger() допомагає переконатися, чи є певне число безпечним цілим числом. "Безпечним" тут означає, що число можна точно представити і використовувати в обчисленнях без втрати точності. У світі JavaScript це особливо важливо, адже мова працює з числами у двійковій системі, і не всі числа можна точно представити.
Для використання цього методу достатньо передати число як аргумент до Number.isSafeInteger(). Метод поверне true, якщо число є безпечним цілим числом, і false в протилежному випадку.
Приклади:
Number.isSafeInteger(3); // true
Number.isSafeInteger(Math.pow(2, 53)); // false, бо це число за межами безпечного діапазону
Number.isSafeInteger(Math.pow(2, 53) - 1); // true, бо це найбільше безпечне ціле число
Number.isSafeInteger(-Math.pow(2, 53)); // false, бо це число за межами безпечного діапазону
Number.isSafeInteger(-Math.pow(2, 53) + 1); // true, бо це найменше безпечне ціле число
Важливо зазначити, що безпечні цілі числа в JavaScript лежать у діапазоні між -9007199254740991 та 9007199254740991 (включно). Ці межі можна отримати, використовуючи константи Number.MIN_SAFE_INTEGER та Number.MAX_SAFE_INTEGER відповідно. Якщо число виходить за ці межі, його використання може призвести до непередбачуваних результатів або втрати точності.
На практиці використання методу Number.isSafeInteger() дозволяє уникнути числових артефактів у великих обчисленнях і забезпечити точність результатів. Перед виконанням складних обчислень або перед збереженням числа в базі даних завжди варто перевіряти, чи є число безпечним цілим числом.
- Порада
-
Цілі числа в межах від
автор: Bond-(2^53 - 1)до2^53 - 1вважаються "безпечними" в JavaScript, оскільки вони можуть бути точно представлені. ВикористовуйтеNumber.isSafeInteger(), щоб перевірити, чи належить ваше число цьому діапазону. - Порада
-
При виконанні математичних операцій із великими числами завжди перевіряйте результат за допомогою
Number.isSafeInteger(), особливо якщо ви плануєте використовувати це число в подальших обчисленнях. Наприклад:
автор: Bondlet result = Math.pow(2, 53) + 1; if (!Number.isSafeInteger(result)) { console.warn('Результат не є безпечним цілим числом!'); } - Нотатка
-
Не плутайте
автор: BondNumber.isSafeInteger()ізNumber.isInteger(). Перший перевіряє діапазон безпечного представлення, тоді як другий лише перевіряє, чи є значення цілим числом, без обмежень на розмір.
Синтаксис
Number.isSafeInteger(testValue)
Параметри
testValue-
Значення для перевірки на належність до безпечних цілих чисел.
автор: Bond
Повернення
boolean-
Повертає булеве значення
автор: Bondtrue, якщо подане значення є числом, яке є безпечним цілим числом. В іншому випадку повертаєfalse.
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 34 | 32 | 9 | 21 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 37 | 34 | 32 | 9 |
| Переглядач | ||
|---|---|---|
| 0.12.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
У цьому прикладі ми створюємо функцію, яка виконує арифметичну операцію над двома числами і перевіряє результат за допомогою Number.isSafeInteger().
function safeAddition(a, b) {
const sum = a + b;
// Перевіряємо, чи є результат безпечним цілим числом
if (!Number.isSafeInteger(sum)) {
return "Результат не є безпечним цілим числом!";
}
return sum;
}
const num1 = Math.pow(2, 52);
const num2 = Math.pow(2, 52);
console.log(safeAddition(num1, num2)); // Результат не є безпечним цілим числом!
Цей код створює інтерактивний блок, де користувач може ввести число для перевірки, чи є воно безпечним цілим числом в JavaScript. Після введення числа та натискання кнопки результат перевірки виводиться у зеленому або червоному кольорі в залежності від того, чи є число безпечним цілим числом чи ні.
У цьому прикладі ми використовуємо метод Number.isSafeInteger() для перевірки, чи є число безпечним цілим числом у JavaScript.
const number1 = Math.pow(2, 53) - 1; // Максимальне безпечне ціле число
const number2 = Math.pow(2, 53); // Число, яке є вище за межею безпечних цілих чисел
console.log(Number.isSafeInteger(number1)); // true
console.log(Number.isSafeInteger(number2)); // false
Коментарі
Коментарів ще немає — будьте першим!