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


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

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

Для використання Number.prototype.toFixed() необхідно викликати цей метод з числового об'єкта, передаючи як аргумент кількість десяткових знаків після коми. Наприклад:

let num = 5.56789;
let result = num.toFixed(2);
console.log(result); // "5.57"

В усіх сучасних браузерах діапазон допустимих значень для аргументу лежить від 0 до 20. Якщо не вказати аргумент, за замовчуванням буде використано 0, тобто число округлиться до найближчого цілого:

let num = 5.56789;
let result = num.toFixed();
console.log(result); // "6"

Важливо зазначити, що хоча метод toFixed() і повертає рядок, він не змінює вихідне число. Також слід зауважити, що в результаті округлення можуть виникнути неточності через особливості представлення чисел у двійкові

автор: Bond

Порада

У деяких випадках, особливо при великих числах, результат toFixed() може бути некоректний через обмеження точності чисел з рухомою комою. Для великих розрахунків рекомендується використовувати спеціалізовані бібліотеки, такі як BigNumber.js.

автор: Bond
Порада

Пам'ятайте, що результат методу toFixed() - це рядок, а не число. Це може стати пасткою для початківців, які очікують отримати число. Якщо вам потрібно знову перетворити результат на число, використовуйте parseFloat():

let strPrice = price.toFixed(2);
let numPrice = parseFloat(strPrice);
автор: Bond
Нотатка

Будьте обережні з великими значеннями для аргумента цього методу. Якщо передати значення більше 100, виникне помилка RangeError. Якщо вам потрібна велика кількість знаків після коми, розгляньте використання інших методів або бібліотек.

автор: Bond
Нотатка

Метод Number.prototype.toFixed() дуже корисний, коли вам потрібно відобразити число з конкретною кількістю знаків після десяткової коми. Це особливо актуально при роботі з фінансовими даними, де точність важлива. Наприклад:

let price = 2.45678;
console.log(price.toFixed(2)); // "2.46"
автор: Bond

Синтаксис

toFixed()
toFixed(digits)

Параметри

digits

Кількість знаків, які мають з'явитися після десяткової коми; має бути значенням від 0 до 100 включно. Якщо цей аргумент не вказано, його вважається 0.

автор: Bond

Повернення

string

Повертає рядок, який представляє задане число в нотації з фіксованою крапкою.

автор: Bond

Винятки

RangeError: якщо значення digits не лежить в діапазоні від 0 до 100 (включно).

TypeError: якщо цей метод викликається на об'єкті, який не є числом (Number).

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач 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

Приклади

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

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

const price = 45.6789;

// Заокруглення до двох знаків після коми
const formattedPrice = price.toFixed(2);

console.log(formattedPrice); // Виведе "45.68"
автор: Bond

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

// Функція для розрахунку відсотка від загальної суми
function calculatePercentage(part, total) {
  return (part / total) * 100;
}

const studentsPassed = 23;
const totalStudents = 30;

// Розрахунок відсотка студентів, які склали екзамен
const passRate = calculatePercentage(studentsPassed, totalStudents);

// Форматування відсоткової ставки до двох знаків після коми
const formattedPassRate = passRate.toFixed(2);

console.log(`Студенти, які склали екзамен: ${formattedPassRate}%`); // Виведе "Студенти, які склали екзамен: 76.67%"
автор: Bond

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

HTML

<header>
  <h2 class="title">Number.prototype.toFixed()</h2>
  <p class="description">Форматує число, заокруглюючи його до заданої кількості десяткових знаків.</p>
</header>
<main>
  <div class="result">
    <label for="number">Введіть число: </label>
    <input type="number" id="number" step="0.001" value="123.4567">
    <br><br>
    <label for="decimals">Кількість знаків після коми: </label>
    <input type="number" id="decimals" min="0" max="20" value="2">
    <br><br>
    <button onclick="formatNumber()">Форматувати</button>
    <p>Результат: <span id="resultDisplay">123.46</span></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);
}

JS

function formatNumber() {
  const number = parseFloat(document.getElementById('number').value);
  const decimals = parseInt(document.getElementById('decimals').value);

  // Використовуємо toFixed() для форматування числа
  const formattedNumber = number.toFixed(decimals);

  document.getElementById('resultDisplay').innerText = formattedNumber;
}
//# sourceURL=pen.js
автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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