JavaScript:
Avrundning av tal

Hur man gör:

Så här avrundar du tal i JavaScript med Math.round(), Math.ceil(), och Math.floor():

let originalNumber = 2.567;

let roundedDown = Math.floor(originalNumber); // 2
let roundedUp = Math.ceil(originalNumber);    // 3
let rounded = Math.round(originalNumber);     // 3 (eftersom .567 är mer än .5)

console.log(roundedDown); // Skriver ut: 2
console.log(roundedUp);   // Skriver ut: 3
console.log(rounded);     // Skriver ut: 3

För att fixera till ett visst antal decimaler, använd toFixed():

let twoDecimals = originalNumber.toFixed(2); // "2.57" (returnerar en sträng)

console.log(twoDecimals); // Skriver ut: "2.57"

Konvertera strängen tillbaka till ett nummer med ett unärt plus eller Number():

let numberAgain = +twoDecimals; // 2.57

console.log(numberAgain); // Skriver ut: 2.57

Fördjupning

Avrundning av tal är inte nytt; det är lika gammalt som talen själva. I JavaScript använder Math.round() “avrunda halvupp”-avbrytning: om den fraktionella delen är 0.5, avrundas det till det närmaste jämna talet.

För mer kontroll kan toFixed() vara din lösning, men kom ihåg att det returnerar en sträng. Att konvertera tillbaka till ett nummer kan vara ett extra steg men säkerställer att du fortsätter arbeta med numeriska typer.

Alternativ? Bibliotek som lodash erbjuder _.round(number, [precision=0]) för mer nyanserad styrning. Eller så ger den nyare Intl.NumberFormat dig hög precision formattering utöver bara avrundning.

När det gäller precision, var medveten om flyttalskonstigheter i JavaScript. 0.1 + 0.2 blir inte exakt 0.3 på grund av hur tal lagras. Ibland blir avrundning nödvändig för att korrigera sådana flyttalsfel.

Se även