Rounding the result of division in Javascript

javascript, rounding

Solution

Modern browsers should support a method called `toFixed()`. Here's an example taken from the web:

// Example: toFixed(2) when the number has no decimal places
// It will add trailing zeros
var num = 10;
var result = num.toFixed(2); // result will equal 10.00

// Example: toFixed(3) when the number has decimal places
// It will round to the thousandths place
num = 930.9805;
result = num.toFixed(3); // result will equal 930.981

`toPrecision()` might also be useful for you, there is another excellent example on that page.

For older browsers, you can achieve it manually using `Math.round`. `Math.round()` will round to the nearest integer. In order to achieve decimal precision, you need to manipulate your numbers a bit:

- Multiply the original number by 10^x (10 to the power of x), where x is the number of decimal places you want.

- Apply Math.round()

- Divide by 10^x

So to round 5.11111111 to three decimal places, you would do this:

var result=Math.round(5.111111*1000)/1000  //returns 5.111

Problem

I'm performing the following operation in Javascript: 0.0030 / 0.031 How can I round the result to an arbitrary number of places? What's the maximum number that a `var` will hold?

Original source