Number.MIN_SAFE_INTEGER — межа цілих чисел у JavaScript
Загальний опис
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:
- Це статична властивість, тому її не потрібно і не можна створювати через конструктор.
- Завжди звертайте увагу на межі безпечних чисел, коли працюєте з великими числами, щоб уникнути втрати точності.
- Якщо вам потрібно працювати з числами, які виходять за межі безпечного діапазону, розгляньте використання спеціальних бібліотек, які надають підтримку великих чисел.
- Порада
-
Незважаючи на назву,
автор: BondNumber.MIN_SAFE_INTEGERлише вказує на найменше безпечне ціле число. Якщо вам потрібно визначити, чи є довільне число безпечним цілим числом в JavaScript, використовуйтеNumber.isSafeInteger(). - Порада
-
Якщо ви плануєте виконувати математичні операції із значеннями, що наближаються до
Number.MIN_SAFE_INTEGER, будьте обережні. При переповненні результати можуть стати непередбачуваними. Наприклад:
автор: Bondlet value = Number.MIN_SAFE_INTEGER; console.log(value - 1); // Повертає некоректне значення! - Нотатка
-
Звертайте увагу на те, де ви використовуєте
автор: BondNumber.MIN_SAFE_INTEGER. Якщо ви порівнюєте значення із зовнішніми джерелами (наприклад, даними з бази даних), переконайтеся, що ці джерела також розуміють "безпечні" межі JavaScript. - Нотатка
-
Використовуйте
Number.MIN_SAFE_INTEGERдля перевірки, чи є число безпечним для точного представлення в JavaScript. Це корисно, якщо ви працюєте з дуже великими або дуже малими числами.
автор: Bondfunction isSafeInteger(value) { return value >= Number.MIN_SAFE_INTEGER && value <= Number.MAX_SAFE_INTEGER; }
Синтаксис
Number.MIN_SAFE_INTEGER
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 34 | 31 | 9 | 21 | 12 | — |
| Переглядач | ||||
|---|---|---|---|---|
| 37 | 34 | 31 | 9 |
| Переглядач | ||
|---|---|---|
| 0.12.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
Коли користувач вводить число в поле для вводу і натискає кнопку "Перевірити", скрипт перевіряє, чи є це число меншим або дорівнює Number.MIN_SAFE_INTEGER та виводить відповідне повідомлення.
HTML
<header>
<h2 class="title">Number.MIN_SAFE_INTEGER</h2>
<p class="description">Повертає мінімальне (найбільше від'ємне) ціле число, яке може бути надійно представлене в JavaScript.</p>
</header>
<main>
<div class="result">
<p>Чи є дане число безпечним для роботи в JavaScript?</p>
<input type="number" id="numberInput" placeholder="Введіть число" />
<button onclick="checkSafety()">Перевірити</button>
<p id="output"></p>
</div>
</main>
CSS
body {
font-size: 16px;
line-height: 1.5;
font-family: monospace;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
header h2.title {
padding-bottom: 15px;
border-bottom: 1px solid #999;
}
header p.description {
font-style: italic;
color: #222;
}
.result {
background-color: #f8f8f8;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
button {
margin-top: 10px;
}
JS
function checkSafety() {
const num = Number(document.getElementById('numberInput').value);
if (num <= Number.MIN_SAFE_INTEGER) {
document.getElementById('output').innerText = 'Це число не є безпечним для роботи в JavaScript!';
} else {
document.getElementById('output').innerText = 'Це число є безпечним для роботи в JavaScript.';
}
}
//# sourceURL=pen.js
У цьому прикладі ми створимо функцію, яка фільтрує масив чисел так, щоб лише числа, що не виходять за межі безпечного діапазону, опинилися у результаті. Це корисно, наприклад, при обробці даних із зовнішніх джерел.
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]
У цьому прикладі ми розглянемо, як можна використовувати 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);
}
Коментарі
Коментарів ще немає — будьте першим!