Numerojen pyöristäminen

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