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?