JavaScript:
Zaokrąglanie liczb

Jak to zrobić:

Oto jak zaokrąglasz liczby w JavaScript za pomocą Math.round(), Math.ceil() oraz Math.floor():

let originalNumber = 2.567;

let roundedDown = Math.floor(originalNumber); // 2
let roundedUp = Math.ceil(originalNumber);    // 3
let rounded = Math.round(originalNumber);     // 3 (ponieważ .567 to więcej niż .5)

console.log(roundedDown); // Wyświetla: 2
console.log(roundedUp);   // Wyświetla: 3
console.log(rounded);     // Wyświetla: 3

Aby ustawić określoną liczbę miejsc po przecinku, użyj toFixed():

let twoDecimals = originalNumber.toFixed(2); // "2.57" (zwraca ciąg znaków)

console.log(twoDecimals); // Wyświetla: "2.57"

Konwertuj ciąg znaków z powrotem na liczbę za pomocą plusa jednostkowego lub Number():

let numberAgain = +twoDecimals; // 2.57

console.log(numberAgain); // Wyświetla: 2.57

Głębsze spojrzenie

Zaokrąglanie liczb nie jest niczym nowym; jest tak stare jak same liczby. W JavaScript, Math.round() używa zasady “zaokrągl w górę do połowy”: jeśli część ułamkowa wynosi 0.5, zaokrągla do najbliższej parzystej liczby.

Dla większej kontroli, toFixed() może być twoim pierwszym wyborem, ale pamiętaj, że zwraca ciąg znaków. Konwersja z powrotem na liczbę może być dodatkowym krokiem, ale zapewnia, że nadal pracujesz z typami numerycznymi.

Alternatywy? Biblioteki takie jak lodash oferują _.round(number, [precision=0]) dla bardziej subtelnej kontroli. Lub, nowszy Intl.NumberFormat daje ci wysoką precyzję formatowania poza samym zaokrąglaniem.

Mówiąc o precyzji, uważaj na dziwactwa związane z liczbami zmiennoprzecinkowymi w JavaScript. 0.1 + 0.2 nie równa się dokładnie 0.3 ze względu na sposób przechowywania liczb. Czasami, zaokrąglanie staje się konieczne, aby skorygować takie błędy zmiennoprzecinkowe.

Zobacz również