Math.trunc() в JavaScript — відкинути дробову частину


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

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

Почнемо з базового використання. Якщо ви маєте число з дробовою частиною і хочете позбутися дробу, просто передайте це число як аргумент до Math.trunc(). Наприклад:

let number = 4.7;
let truncatedNumber = Math.trunc(number);
console.log(truncatedNumber);  // Виведе: 4

Даний метод працює як для додатних, так і для від'ємних чисел:

let negativeNumber = -4.7;
let truncatedNegativeNumber = Math.trunc(negativeNumber);
console.log(truncatedNegativeNumber);  // Виведе: -4

До того ж, якщо передати число без дробової частини, Math.trunc() поверне це число без змін:

let wholeNumber = 5;
let result = Math.trunc(wholeNumber);
console.log(result);  // Виведе: 5

Також цікавим є той факт, що при передачі значень, які не є числами, метод Math.trunc() повертає NaN:

let notANumber = "текст";
let truncResult = Math.trunc(notANumber);
console.log(truncResult);  // Виведе: NaN

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

автор: Bond

Порада

Якщо вам потрібне конкретне округлення (вгору чи вниз), краще використовуйте Math.ceil() або Math.floor(). Math.trunc() найкраще підходить, коли вам просто потрібно відсікти дробову частину без додаткового округлення.

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

Якщо аргумент, який ви передаєте методу Math.trunc(), не є числом, метод поверне NaN. Тому завжди переконуйтеся в тому, що передаєте коректний аргумент.

console.log(Math.trunc('text'));  // NaN
автор: Bond
Нотатка

Math.trunc() — це корисний інструмент для швидкої конвертації дробового числа в ціле, коли вам не потрібно округлення.

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

Перш за все, зрозумійте, що Math.trunc() відсікає дробову частину числа, але не округлює його. Тобто для додатних чисел він працює подібно до Math.floor(), а для від'ємних чисел — до Math.ceil().

console.log(Math.trunc(4.9));  // 4
console.log(Math.trunc(-4.9)); // -4
автор: Bond

Синтаксис

Math.trunc(x)

Параметри

x

Число, дробова частина якого буде відсічена.

автор: Bond

Повернення

integer

Повертає цілу частину числа, відсікаючи його дробову частину. Тип результату - number. Якщо аргумент методу не є числом або він є NaN, метод поверне NaN.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
38 25 8 25 12 —
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
38 38 25 8
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.12.0 1.0

Приклади

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

У цьому прикладі ми використовуємо Math.trunc() для отримання цілої частини числа, відкидаючи дробову частину.

// Вхідні дані
let number = 4.76;

// Використання Math.trunc() для отримання цілої частини числа
let truncatedNumber = Math.trunc(number);

console.log(truncatedNumber);  // Виведе: 4
автор: Bond

Коли користувач введе число в поле вводу і натисне на кнопку, результат застосування Math.trunc() буде показано нижче поля вводу.

HTML

<header>
  <h2 class="title">Math.trunc()</h2>
  <p class="description">Цей метод повертає цілу частину числа, відкидаючи дробову.</p>
</header>
<main>
  <div class="result">
    <label for="inputNumber">Введіть число:</label>
    <input type="text" id="inputNumber">
    <button onclick="applyTrunc()">Застосувати Math.trunc()</button>
    <p>Результат: <span id="outputNumber"></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);
}

button {
  margin-left: 10px;
}

JS

function applyTrunc() {
  const inputNumber = document.getElementById('inputNumber').value;
  const truncatedNumber = Math.trunc(Number(inputNumber));
  document.getElementById('outputNumber').innerText = truncatedNumber;
}
//# sourceURL=pen.js
автор: Bond

У цьому прикладі ми реалізуємо функцію, яка конвертує грошову суму в текстовому форматі (з копійками після коми) у два окремі числа: гривні та копійки. Для цього ми будемо використовувати метод Math.trunc().

function convertToCoins(sum) {
    // Відділяємо гривні та копійки
    let hryvnias = Math.trunc(sum);  // Отримуємо цілу частину - гривні
    let kopecks = Math.trunc((sum - hryvnias) * 100);  // Отримуємо копійки

    return {
        hryvnias,
        kopecks
    };
}

let money = 152.48;
let result = convertToCoins(money);

console.log(`Гривень: ${result.hryvnias}, Копійок: ${result.kopecks}`);  // Виведе: Гривень: 152, Копійок: 48
автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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