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()
дозволяє уникнути числових артефактів у великих обчисленнях і забезпечити точність результатів. Перед виконанням складних обчислень або перед збереженням числа в базі даних завжди варто перевіряти, чи є число безпечним цілим числом.
Нотатка: | Не плутайте |
Порада: | Цілі числа в межах від |
Порада: | При виконанні математичних операцій із великими числами завжди перевіряйте результат за допомогою
|
Синтаксис
Number.isSafeInteger(testValue)
Параметри
- *
testValue
Значення для перевірки на належність до безпечних цілих чисел.
Return
boolean
Повертає булеве значення
true
, якщо подане значення є числом, яке є безпечним цілим числом. В іншому випадку повертаєfalse
.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
34 |
32 |
9 |
21 |
12 |
Переглядач | ||||
---|---|---|---|---|
37 |
34 |
32 |
9 |
Переглядач | ||
---|---|---|
0.12.0 |
1.0 |
Приклади
Цей код створює інтерактивний блок, де користувач може ввести число для перевірки, чи є воно безпечним цілим числом в 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
У цьому прикладі ми створюємо функцію, яка виконує арифметичну операцію над двома числами і перевіряє результат за допомогою 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)); // Результат не є безпечним цілим числом!