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