Метод Number.prototype.toPrecision() дозволяє отримати текстове представлення числа з вказаною точністю. Ця функція корисна, коли потрібно представити число з певною кількістю знаків, незалежно від того, чи вони знаходяться перед чи після десяткової крапки.
Використання методу toPrecision() досить просте. Він приймає один аргумент – ціле число від 1 до 100, яке вказує на бажану точність (тобто кількість знаків у числі). Якщо аргумент не передається, метод повертає рядок без змін.
Важливо враховувати, що метод toPrecision() повертає рядок, а не число. Це означає, що ви не зможете виконувати математичні операції без подальшого перетворення результату назад у число.
Також слід зазначити, що якщо вказана точність менша за кількість цифр у цілій частині числа, число округляється до найближчого значення. Наприклад, 123456.toPrecision(3) повертає рядок "1.23e+5", який відображає науковий формат запису.
Повертає рядок, що представляє об'єкт Number у форматі з фіксованою точкою або в експоненціальному форматі, округлений до заданої кількості значущих цифр.
Цей код дозволяє користувачеві вводити число та вибирати точність за допомогою повзунка. Після натискання на кнопку "Форматувати", число відображається з вказаною точністю.
У цьому прикладі ми використовуємо метод toPrecision() для відображення числа з вказаною кількістю значущих цифр. Це може бути корисним, наприклад, коли потрібно надати приблизну відповідь або при виконанні наукових розрахунків.
let number = 3.141592653589793;
// Відображення числа з трьома значущими цифрами
let preciseNumber = number.toPrecision(3);
console.log(preciseNumber); // 3.14
У цьому прикладі ми розглядаємо ситуацію, де ми отримуємо дані від сенсора, який вимірює температуру з високою точністю. Ми хочемо відобразити температуру для користувача, але з обмеженою кількістю значущих цифр.
let rawSensorData = 21.5634872348723;
// Функція для отримання пристойного відображення температури
function formatTemperature(temperature, significantDigits) {
return temperature.toPrecision(significantDigits) + "°C";
}
console.log(formatTemperature(rawSensorData, 4)); // 21.56°C
console.log(formatTemperature(rawSensorData, 5)); // 21.563°C