Number.toPrecision() в JavaScript — задана точність числа


Загальний опис

Метод Number.prototype.toPrecision() дозволяє отримати текстове представлення числа з вказаною точністю. Ця функція корисна, коли потрібно представити число з певною кількістю знаків, незалежно від того, чи вони знаходяться перед чи після десяткової крапки.

Використання методу toPrecision() досить просте. Він приймає один аргумент – ціле число від 1 до 100, яке вказує на бажану точність (тобто кількість знаків у числі). Якщо аргумент не передається, метод повертає рядок без змін.

Ось декілька прикладів:

let num = 12345.6789;

console.log(num.toPrecision());       // "12345.6789" (без змін)
console.log(num.toPrecision(5));      // "12346" (п'ять знаків)
console.log(num.toPrecision(7));      // "12345.68" (сім знаків)
console.log(num.toPrecision(10));     // "12345.67890" (десять знаків)

Важливо враховувати, що метод toPrecision() повертає рядок, а не число. Це означає, що ви не зможете виконувати математичні операції без подальшого перетворення результату назад у число.

Також слід зазначити, що якщо вказана точність менша за кількість цифр у цілій частині числа, число округляється до найближчого значення. Наприклад, 123456.toPrecision(3) повертає рядок "1.23e+5", який відображає науковий формат запису.

автор: Bond

Нотатка

Метод toPrecision() дозволяє вам вказати загальну кількість значущих цифр у числі. Це особливо корисно, коли потрібно вивести число з певною точністю.

let number = 123.45678;
console.log(number.toPrecision(3)); // "123"
автор: Bond
Нотатка

Якщо викликати toPrecision() для дуже маленького чи великого числа, результат може бути представлений у науковому форматі.

let smallNumber = 0.000012345;
console.log(smallNumber.toPrecision(2)); // "1.2e-5"
автор: Bond
Нотатка

Метод toPrecision() автоматично округлює число до вказаної кількості значущих цифр.

let anotherNumber = 9.876;
console.log(anotherNumber.toPrecision(2)); // "9.9"
автор: Bond

Синтаксис

toPrecision()
toPrecision(precision)

Параметри

precision

Ціле число, яке вказує кількість значущих цифр у числі.

автор: Bond

Повернення

value

Повертає рядок, що представляє об'єкт Number у форматі з фіксованою точкою або в експоненціальному форматі, округлений до заданої кількості значущих цифр.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 2 7 12 5.5
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

Цей код дозволяє користувачеві вводити число та вибирати точність за допомогою повзунка. Після натискання на кнопку "Форматувати", число відображається з вказаною точністю.

HTML

<header>
  <h2 class="title">Number.prototype.toPrecision()</h2>
  <p class="description">Встановлює та повертає форматоване число з вказаною точністю.</p>
</header>
<main>
  <div class="result">
    <label for="number">Введіть число:</label>
    <input type="number" id="number" value="12345.6789">
    <label for="precision">Виберіть точність (1-10):</label>
    <input type="range" id="precision" min="1" max="10" value="5">
    <span id="rangeValue">5</span>
    <br>
    <button onclick="displayPrecision()">Форматувати</button>
    <p id="formattedNumber">Форматоване число: </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);
}

label, input, button, span {
  margin: 5px;
}

JS

function displayPrecision() {
  let num = parseFloat(document.getElementById('number').value);
  let precision = document.getElementById('precision').value;
  let formatted = num.toPrecision(precision);
  document.getElementById('formattedNumber').innerText = 'Форматоване число: ' + formatted;
}

document.getElementById('precision').addEventListener('input', function (e) {
  document.getElementById('rangeValue').innerText = e.target.value;
});
//# sourceURL=pen.js
автор: Bond

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

let number = 3.141592653589793;

// Відображення числа з трьома значущими цифрами
let preciseNumber = number.toPrecision(3);
console.log(preciseNumber); // 3.14
автор: Bond

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

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
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід