2009-08-26 2 views
0

У меня есть следующие функции яваскрипта для округления:Javascript странную проблема округления

function round(val, numberdigits){ 

    return Math.round(val*Math.pow(10, numberdigits))/Math.pow(10, numberdigits); 

} 

В большинстве случаев, он делает свою работу хорошо, но в некоторых редких случаях, возвращенное значение имеет одна цифры больше, что всегда 5.

Пример списка результатов с numberofdigits = 3:

5,329 - 5,081 - 4,271 - 3,271 - 2,1525 - 2,1375 - 2,1225 - 1,997 - 2,044 - 2,031 - 2,028

Может кто-нибудь объяснить это? Или, может быть, предоставить мне лучшую функцию округления, которая предотвращает эту проблему?

+1

У вас есть пример такого входного значения? – RaYell

ответ