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ż
- Dokumentacja Math Mozilli: MDN Web Docs
- Zaokrąglanie finansowe z
Intl.NumberFormat
: ECMAScript Internationalization API - Zaokrąglanie
lodash
: Dokumentacja Lodash