JS властивість Number.EPSILON
На даний момент опис відсутній.
- Порада
-
Якщо ви створюєте бібліотеку або функцію для математичних операцій, завжди враховуйте
автор: BondNumber.EPSILONдля обробки чисел з плаваючою комою. Це допоможе уникнути непередбачуваних помилок порівняння. - Порада
-
Використовуйте
Number.EPSILONдля порівняння чисел з плаваючою комою. Через обмеження представлення чисел в комп'ютерах, пряме порівняння двох чисел з плаваючою комою може не завжди давати очікуваний результат. Наприклад:
автор: Bondif (Math.abs(a - b) < Number.EPSILON) { console.log('Числа майже рівні.'); } - Нотатка
-
Для початківців важливо розуміти, що
автор: BondNumber.EPSILONне є мінімальним представимим числом в JavaScript. Він лише вказує на мінімальну різницю між двома числами, яку JavaScript вважає відмінною від нуля.
Синтаксис
Number.EPSILON
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 34 | 25 | 9 | 21 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 37 | 34 | 25 | 9 |
| Переглядач | ||
|---|---|---|
| 0.12.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
У цьому прикладі ми використовуємо Number.EPSILON для порівняння двох чисел з плаваючою комою. Завдяки цьому можна визначити, чи є вони "майже рівними", ураховуючи потенційні неточності представлення чисел у комп'ютерах.
const num1 = 0.1 + 0.2;
const num2 = 0.3;
if (Math.abs(num1 - num2) < Number.EPSILON) {
console.log('Числа майже рівні.');
} else {
console.log('Числа відмінні.');
}
// Виведе: Числа майже рівні.
У цьому прикладі ми розглянемо складніший сценарій, де використовуємо Number.EPSILON для перевірки коректності обчислення власної функції sqrt, яка визначає квадратний корінь числа за допомогою методу Ньютона.
function sqrt(x, guess = x / 2.0) {
const improved_guess = (guess + x / guess) / 2;
if (Math.abs(guess - improved_guess) < Number.EPSILON) {
return improved_guess;
}
return sqrt(x, improved_guess);
}
const result = sqrt(2);
console.log(result); // Приблизно 1.414213562373095
// Перевірка результату за допомогою вбудованої функції
if (Math.abs(result * result - 2) < Number.EPSILON) {
console.log('Результат вірний.');
} else {
console.log('Результат невірний.');
}
// Виведе: Результат вірний.
Коментарі
Коментарів ще немає — будьте першим!