Числа
Усі числа в JavaScript (цілі і дробові), мають тип Number і їх можна записувати не тільки в десятковій системі числення.
Приведення до числа
Більшість арифметичних операцій і математичних функцій перетворюють значення у число автоматично. Але для того, щоб це зробити явно, використовують функцію Number(val), де val - це те, що потрібно привести до числа.
const value = "12";
console.log(Number(value)); // 12
console.log(typeof Number(value)); // "number"Якщо значення привести до числа неможливо, то функція поверне спеціальне числове значення NaN (Not a Number). Аналогічним чином відбувається перетворення і в інших математичних операторах і функціях.
const value = "string";
console.log(Number(value)); // NaN
console.log(typeof Number(value)); // "number"Методи Number.parseInt() і Number.parseFloat()
Перетворюють рядок в число символ за символом, поки це можливо. У разі виникнення помилки (тобто якщо символ рядка не можна перетворити в цифру), то парсинг припиняється і повертається підсумкове число.
Метод Number.parseInt() парсить з рядка ціле число.
console.log(Number.parseInt("7%")); // 7
console.log(Number.parseInt("32qwerty12")); // 32
console.log(Number.parseInt("32.13qwerty12")); // 32
console.log(Number.parseInt("qwetry")); // NaNМетод Number.parseFloat() парсить з рядка число з крапкою.
Перевірка на число
Бувають ситуації, коли потрібно перевірити чи є числом певна змінна. Для цього використовують метод Number.isNaN(val). Цей метод перевіряє чи сутність val є NaN.
Повертає значення:
true - якщо значення val - NaN (тобто це НЕ число)
false - якщо значення val - не NaN (тобто це число)
Для всіх значень val, крім NaN, при передачі в Number.isNaN(val) поверне false. Цей метод не перетворює val в число, а просто виконує перевірку на NaN.
Додавання чисел з рухомою крапкою (комою)
Компʼютер при розрахунках оперує двійковою системою, тому при розрахункових операціях із дробовими числами в десятковій системі може виникати дуже незначна, але похибка. Це особливість мови програмування JavaScript. Так, наприклад 0.1 + 0.2 не дорівнює 0.3.
Результат буде трохи більшим, бо машина розраховує у двійковій системі числення. Число 0.1 у двійковій системі - це нескінченний дріб, бо 1 не ділиться на 10 в цій системі числення. Двійкове значення нескінченних дробів зберігається тільки до певного знаку, тому виникає неточність. При додаванні 0.1 і 0.2, додаються дві неточності, виходить незначна, але все-таки помилка в обчисленнях.
Є декілька способів розв'язувати цю проблему.
1.Можна зробити операнди цілими, помноживши на N, додати, а потім результат поділити також на N.
2.Можна додати операнди, а результат скоротити до певного знаку після коми за допомогою методу toFixed().
Клас Math
Math - один із вбудованих класів, який надає набір методів для роботи з числами. Їх велика кількість. Варто запамʼятати найбільш вживані.
Math.floor()
Math.floor(num) - повертає найменше ціле число, менше, або яке дорівнює зазначеному числу
Math.ceil()
Math.ceil(num) - повертає найбільше ціле число, більше, або яке дорівнює зазначеному числу.
Math.round()
Math.round(num) - повертає значення числа, округленого до найближчого цілого
Math.max()
Math.max(num1, num2, ...) - повертає найбільше ціле число з набору
Math.min()
Math.min(num1, num2, ...) - повертає найменше ціле число з набору
Math.pow()
Math.pow(base, exponent) - піднесення до степеня
Math.random()
Math.random() - повертає псевдовипадкове число в діапазоні [0, 1)
Last updated