JavaScript:
Numerojen pyöristäminen
Miten:
Tässä on, miten voit pyöristää numeroita JavaScriptissä käyttämällä Math.round()
, Math.ceil()
, ja Math.floor()
:
let originalNumber = 2.567;
let roundedDown = Math.floor(originalNumber); // 2
let roundedUp = Math.ceil(originalNumber); // 3
let rounded = Math.round(originalNumber); // 3 (koska .567 on enemmän kuin .5)
console.log(roundedDown); // Tulostaa: 2
console.log(roundedUp); // Tulostaa: 3
console.log(rounded); // Tulostaa: 3
Kiinnittääksesi tiettyyn määrään desimaalipaikkoja, käytä toFixed()
:
let twoDecimals = originalNumber.toFixed(2); // "2.57" (palauttaa merkkijonon)
console.log(twoDecimals); // Tulostaa: "2.57"
Muunna merkkijono takaisin numeroksi unariaalisen plussan tai Number()
avulla:
let numberAgain = +twoDecimals; // 2.57
console.log(numberAgain); // Tulostaa: 2.57
Syväsukellus
Numeroiden pyöristäminen ei ole uutta; se on yhtä vanhaa kuin numerot itse. JavaScriptissä Math.round()
käyttää “pyöristä puoli ylöspäin” -tasausmenetelmää: jos fraktionaalinen osa on 0.5, se pyöristää lähimpään parilliseen numeroon.
Saat enemmän kontrollia, toFixed()
voi olla sinun valintasi, mutta muista, se palauttaa merkkijonon. Takaisin numeroksi muuntaminen voi olla ylimääräinen askel, mutta varmistaa, että jatkat työskentelyä numeeristen tyyppien kanssa.
Vaihtoehtoja? Kirjastot kuten lodash
tarjoavat _.round(number, [precision=0])
tarkemman kontrollin saamiseksi. Tai, uudempi Intl.NumberFormat
antaa sinulle korkean tarkkuuden muotoilun pelkän pyöristämisen sijaan.
Puhuttaessa tarkkuudesta, varo JavaScriptin liukulukujen oikkuja. 0.1 + 0.2
ei täsmälleen yhtä kuin 0.3
johtuen siitä, miten numerot tallennetaan. Joskus pyöristäminen on tarpeen korjatakseen tällaiset liukulukuvirheet.
Katso Myös
- Mozillan Matematiikkadokumentaatio: MDN Web Docs
- Taloudellinen pyöristäminen
Intl.NumberFormat
avulla: ECMAScript Internationalization API lodash
pyöristäminen: Lodash Docs