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

Нотатка:

Хоча Number.MAX_SAFE_INTEGER вказує на найбільше безпечне ціле число, Number.MAX_VALUE вказує на найбільше можливе дійсне число. Обидві ці властивості мають різне призначення, тому завжди переконуйтеся, що ви використовуєте правильну властивість для своїх потреб.

Нотатка:

Для автоматизованого виявлення потенційних проблем з великими числами можна використовувати Number.MAX_SAFE_INTEGER в юніт-тестах або при валідації даних.

function isSafeNumber(value) {
  return value <= Number.MAX_SAFE_INTEGER;
}
Порада:

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

if (someLargeNumber > Number.MAX_SAFE_INTEGER) {
  console.warn("Це число може бути ненадійним для операцій у JS!");
}
Порада:

Якщо ви виявите, що потрібно працювати з числами, які перевищують Number.MAX_SAFE_INTEGER, розгляньте можливість використання спеціалізованих бібліотек, таких як BigInt, для точної роботи з великими числами.

Синтаксис

Number.MAX_SAFE_INTEGER

Значення

Return

Переглядачі

Переглядач

34

31

9

21

12

Переглядач

37

34

31

9

Переглядач

0.12.0

1.0

Приклади


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

const numberToCheck = 1234567890123456;

if (numberToCheck <= Number.MAX_SAFE_INTEGER) {
    console.log('Число є безпечним для обробки в JavaScript.');
} else {
    console.log('Число не є безпечним. Можливі неточності у обчисленнях.');
}

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

const bigNumber1 = 9007199254740990;
const bigNumber2 = 10;

const result = bigNumber1 + bigNumber2;

if (result <= Number.MAX_SAFE_INTEGER) {
    console.log(`Результат ${result} є безпечним для подальших обчислень.`);
} else {
    console.log('Результат перевищує безпечний діапазон і може бути неточним.');
}