2009-08-26 10 views
0

j'ai la fonction javascript suivante pour arrondir:javascript problème d'arrondi étrange

function round(val, numberdigits){ 

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

} 

Dans la plupart des cas, il fait son travail bien, mais dans certains cas rares, la valeur retournée a un chiffre plus, ce qui est toujours 5.

Exemple liste des résultats avec numberofdigits = 3:

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

Quelqu'un peut-il expliquer cela? Ou peut-être me fournir une meilleure fonction d'arrondi qui empêche ce problème?

+1

Avez-vous un exemple de cette valeur d'entrée? – RaYell

Répondre