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;
}
Вы уверены, что это было предназначено для JavaScript?
Если у вас есть номер (n = 10449.012345)
и вы хотите округлить его до 5 десятичных знаков (dec = 5),
Math.round (n * Math.pow (10, dec)) / Math.pow (10, dec)
возвращает 10449.01234.
Использование roundNumber (10449.012345,5)
возвращает 10449.012340000001,
который не кажется улучшением.
10000.12 возвращено 10000.119999999999.
Не удалось выполнить все нецелые числа, которые я пробовал в диапазоне 8191-10485.
10000 вернул 10000, так что вы можете безопасно использовать его для округления целых чисел, я думаю.