Number rounding in JavaScript

So trivial a task to us humans, almost so to JavaScript as well. Round up your brain cells as we explore number rounding in the language!

Basic idea

JavaScript helps lay the foundation for rounding off numbers with the following method:


Using it, any supplied argument is rounded off to the nearest integer, and using the ".5" up rule. For example:

Math.round(25.9) //returns 26
Math.round(25.2) //returns 25
Math.round(-2.58) //returns -3

If purging numbers of decimals is all that you require, class dismissed!

Taking things a few decimals further

Want to display $25 in standard currency format? How about PI to finity and not beyond? Formatting numbers to specific decimal points entails still Math.round(), but padded with a little multiplication and division. See if you can identify the magic formula involved, with the below examples:

var original=28.453
1) //round "original" to two decimals
var result=Math.round(original*100)/100  //returns 28.45
2) // round "original" to 1 decimal
var result=Math.round(original*10)/10  //returns 28.5
3) //round 8.111111 to 3 decimals
var result=Math.round(8.111111*1000)/1000  //returns 8.111

In case you haven't picked up on it, the formula to round any number to x decimal points is:

1) Multiple the original number by 10^x (10 to the power of x)
2) Apply Math.round() to the result
3) Divide result by 10^x

Ahh, pre Algebra class all over again...