2017-01-12 5 views
0

En utilisant ce code (https://jsfiddle.net/d5pjr60g/):arrondi Javascript échoue sur 77,475 et 67,475

var num = 67.475; 
var round = (Math.round(num * 100)/100).toFixed(2); 
alert(round); 

Les numéros 67,475 et 77,475 retour 67,47 et 77,47 respectivement. Cependant, si vous changez un autre nombre, il arrondit "correctement". 57.475 ou 67.375 renverront respectivement 57.48 et 67.38.

-je obtenir le même résultat si j'utilise la base var round = num.toFixed(2);

Cela se produit sur tous les navigateurs. Comment puis-je l'obtenir au tour 77.475 à 77.48?

+1

'toFixed' n'arrondit la décimale, juste tronque –

+2

[' 67,475 * 100' = '6747.499999999999'] (http://stackoverflow.com/q/588004/1048572) – Bergi

+0

Je ne Je comprends. pourquoi ne pas juste 'num.toFixed (2)'? Qu'est-ce que tout l'autre multiplie/divise/arrondit? – Kousha

Répondre