JavaScript:
Afronden van getallen

Hoe:

Hier is hoe je nummers afrondt in JavaScript met Math.round(), Math.ceil(), en Math.floor():

let origineelNummer = 2.567;

let naarBenedenAfgerond = Math.floor(origineelNummer); // 2
let naarBovenAfgerond = Math.ceil(origineelNummer);    // 3
let afgerond = Math.round(origineelNummer);            // 3 (aangezien .567 meer is dan .5)

console.log(naarBenedenAfgerond); // Print: 2
console.log(naarBovenAfgerond);   // Print: 3
console.log(afgerond);            // Print: 3

Om tot een bepaald aantal decimalen te fixeren, gebruik toFixed():

let tweeDecimalen = origineelNummer.toFixed(2); // "2.57" (geeft een string terug)

console.log(tweeDecimalen); // Print: "2.57"

Zet de string terug naar een nummer met een unair plusje of Number():

let weerEenNummer = +tweeDecimalen; // 2.57

console.log(weerEenNummer); // Print: 2.57

Diepe Duik

Nummers afronden is niet nieuw; het is zo oud als de nummers zelf. In JavaScript gebruikt Math.round() de “ronde helft omhoog” tie-breaking: als het fractiegedeelte 0.5 is, wordt er afgerond naar het dichtstbijzijnde even nummer.

Voor meer controle is toFixed() misschien je beste optie, maar onthoud dat het een string teruggeeft. Terug converteren naar een nummer kan een extra stap zijn, maar zorgt ervoor dat je blijft werken met numerieke typen.

Alternatieven? Bibliotheken als lodash bieden _.round(number, [precision=0]) voor meer genuanceerde controle. Of, de nieuwere Intl.NumberFormat geeft je hoogprecieze formatting, verder dan alleen afronden.

Over precisie gesproken, pas op voor de eigenaardigheden van drijvende-kommagetallen in JavaScript. 0.1 + 0.2 is niet exact gelijk aan 0.3 vanwege hoe nummers worden opgeslagen. Soms is afronden noodzakelijk om dergelijke drijvende-kommagetallenfouten te corrigeren.

Zie Ook