JS властивість Number.MIN_SAFE_INTEGER


Загальний опис

Number.MIN_SAFE_INTEGER – це властивість у JavaScript, яка представляє найменше ціле безпечне число, з яким можна працювати, де "безпечне" означає, що воно може бути точно представлене як ціле число в стандартному форматі IEEE-754. В основному, ця властивість корисна при операціях порівняння або обчисленнях, де точність є критичною.

Використання Number.MIN_SAFE_INTEGER досить просте. Воно надає фіксоване значення, яке дорівнює -9007199254740991.

Приклад:

console.log(Number.MIN_SAFE_INTEGER); // виведе: -9007199254740991

При порівнянні або виконанні операцій з великими числами може виникнути необхідність перевірки, чи є результат безпечним для подальшої роботи. Ось як ви можете це робити:

function isSafeNumber(n) {
  return n <= Number.MAX_SAFE_INTEGER && n >= Number.MIN_SAFE_INTEGER;
}

console.log(isSafeNumber(-9007199254740992)); // виведе: false
console.log(isSafeNumber(-9007199254740991)); // виведе: true

Ключові особливості Number.MIN_SAFE_INTEGER:

  1. Це статична властивість, тому її не потрібно і не можна створювати через конструктор.
  2. Завжди звертайте увагу на межі безпечних чисел, коли працюєте з великими числами, щоб уникнути втрати точності.
  3. Якщо вам потрібно працювати з числами, які виходять за межі безпечного діапазону, розгляньте використання спеціальних бібліотек, які надають підтримку великих чисел.
автор: Bond

Порада

Незважаючи на назву, Number.MIN_SAFE_INTEGER лише вказує на найменше безпечне ціле число. Якщо вам потрібно визначити, чи є довільне число безпечним цілим числом в JavaScript, використовуйте Number.isSafeInteger().

автор: Bond
Порада

Якщо ви плануєте виконувати математичні операції із значеннями, що наближаються до Number.MIN_SAFE_INTEGER, будьте обережні. При переповненні результати можуть стати непередбачуваними. Наприклад:

let value = Number.MIN_SAFE_INTEGER;
console.log(value - 1);  // Повертає некоректне значення!
автор: Bond
Нотатка

Звертайте увагу на те, де ви використовуєте Number.MIN_SAFE_INTEGER. Якщо ви порівнюєте значення із зовнішніми джерелами (наприклад, даними з бази даних), переконайтеся, що ці джерела також розуміють "безпечні" межі JavaScript.

автор: Bond
Нотатка

Використовуйте Number.MIN_SAFE_INTEGER для перевірки, чи є число безпечним для точного представлення в JavaScript. Це корисно, якщо ви працюєте з дуже великими або дуже малими числами.

function isSafeInteger(value) {
  return value >= Number.MIN_SAFE_INTEGER && value <= Number.MAX_SAFE_INTEGER;
}
автор: Bond

Синтаксис

Number.MIN_SAFE_INTEGER

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
34 31 9 21 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
37 34 31 9
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.12.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

Коли користувач вводить число в поле для вводу і натискає кнопку "Перевірити", скрипт перевіряє, чи є це число меншим або дорівнює Number.MIN_SAFE_INTEGER та виводить відповідне повідомлення.

автор: Bond

У цьому прикладі ми створимо функцію, яка фільтрує масив чисел так, щоб лише числа, що не виходять за межі безпечного діапазону, опинилися у результаті. Це корисно, наприклад, при обробці даних із зовнішніх джерел.

function filterSafeIntegers(numbers) {
    return numbers.filter(number => 
        number >= Number.MIN_SAFE_INTEGER && number <= Number.MAX_SAFE_INTEGER
    );
}

const numbersArray = [1, 2, 3, Number.MIN_SAFE_INTEGER - 1, Number.MAX_SAFE_INTEGER + 1];

const safeNumbers = filterSafeIntegers(numbersArray);

console.log(safeNumbers);  // [1, 2, 3]
автор: Bond

У цьому прикладі ми розглянемо, як можна використовувати Number.MIN_SAFE_INTEGER для перевірки на переповнення при виконанні операцій віднімання.

const value = Number.MIN_SAFE_INTEGER;

// Виконуємо операцію віднімання
const result = value - 5;

// Перевіряємо, чи результат є безпечним цілим числом
if (result < Number.MIN_SAFE_INTEGER) {
    console.log("Операція викликала переповнення!");
} else {
    console.log("Результат: " + result);
}
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід