JavaScript:
Avrunding av tall
Hvordan:
Her er hvordan du avrunder tall i JavaScript ved hjelp av Math.round(), Math.ceil(), og Math.floor():
let originalNumber = 2.567;
let rundetNed = Math.floor(originalNumber); // 2
let rundetOpp = Math.ceil(originalNumber); // 3
let avrundet = Math.round(originalNumber); // 3 (siden .567 er mer enn .5)
console.log(rundetNed); // Skriver ut: 2
console.log(rundetOpp); // Skriver ut: 3
console.log(avrundet); // Skriver ut: 3
For å fikse til et bestemt antall desimaler, bruk toFixed():
let toDesimaler = originalNumber.toFixed(2); // "2.57" (returnerer en streng)
console.log(toDesimaler); // Skriver ut: "2.57"
Konverter strengen tilbake til et tall med et unært pluss eller Number():
let tallIgjen = +toDesimaler; // 2.57
console.log(tallIgjen); // Skriver ut: 2.57
Dypdykk
Å avrunde tall er ikke nytt; det er like gammelt som tallene selv. I JavaScript bruker Math.round() “rund halv opp”-grenseregelen: hvis den fraksjonelle delen er 0.5, avrunder den til det nærmeste partall.
For mer kontroll kan toFixed() være din go-to, men husk, den returnerer en streng. Å konvertere tilbake til et tall kan være et ekstra skritt, men sikrer at du fortsetter å jobbe med numeriske typer.
Alternativer? Biblioteker som lodash tilbyr _.round(number, [presisjon=0]) for mer nyansert kontroll. Eller, den nyere Intl.NumberFormat gir deg høy-presisjonsformatering utover bare avrunding.
Når vi snakker om presisjon, vær oppmerksom på flyttalls særegenheter i JavaScript. 0.1 + 0.2 blir ikke nøyaktig 0.3 på grunn av hvordan tall lagres. Noen ganger blir avrunding nødvendig for å korrigere slike flyttallfeil.
Se også
- Mozillas matematikkdokumentasjon: MDN Web Docs
- Finansiell avrunding med
Intl.NumberFormat: ECMAScript Internationaliserings-API lodashavrunding: Lodash Dokumenter