function roundNumber(num, dec){ var newnumber= 0; if(num> 8191 && num < 10485){ num= num-5000; newnumber= Math.round(num*Math.pow(10, dec))/Math.pow(10, dec); newnumber= newnumber+5000; } else{ newnumber= Math.round(num*Math.pow(10, dec))/Math.pow(10, dec); } return newnumber; }
Are you sure this was for javascript?
If you have a number (n = 10449.012345)
and you want to round it to 5 decimal places (dec = 5), Math.round (n * Math.pow (10, dec)) / Math.pow (10, dec) returns 10449.01234.
Using roundNumber (10449.012345.5) returns 10449.012340000001, which does not seem to be an improvement. 10000.12 returned 10000.119999999999.
All non-integer numbers that I tried in the range of 8191-10485 failed.
10000 really returned 10000, so you can safely use it to round integers. I think.
kennebec
source share