Arrondir à N chiffres en Javascript
En Javascript, la fonction Math.round()
permet d'arrondir un nombre décimal à l'entier le plus proche, exemple :
Math.round(5.56845) // 6
Le problème c'est qu'elle ne permet pas d'arrondir à un certain nombre de chiffres après la virgule.
Heureusement il y a une astuce très simple qui permet de calculer un arrondi à N chiffre après la virgule. Pour cela il suffit de multiplier le nombre à arrondir par une puissance de 10, pour "déplacer" la virgule vers la droite.
Voici un petit exemple pour arrondir à 2 chiffres après la virgule : il suffit de multiplier le nombre par 100, de calculer l'arrondi, et de le diviser par 100 pour remettre la virgule à sa place originale :
Allez donc jeter un oeil sur cette page : désactiver la récupération de fichier excel.
var nombre = 5.56845; arrondi = nombre*100; // 556.845 arrondi = Math.round(arrondi); // 556 arrondi = arrondi/100; // 5.56
Fonction round avec précision
Aller, voilà en cadeau une fonction qui permet d'arrondir à N chiffre après la virgule (2 décimales par défaut), en fournissant la précision en second paramètre (optionnel) :
function roundDecimal(nombre, precision){ var precision = precision || 2; var tmp = Math.pow(10, precision); return Math.round( nombre*tmp )/tmp; }
Allez donc jeter un oeil sur cette page : incorporer un modèle 3d dans une photographie.
Ce détail peut poser des problèmes dans les calculs financiers où la norme est d'arrondir les résultats plutôt que de les tronquer.
Sinon la fonction toFixed() ne peut elle pas faire l'affaire?
Je passe par là plus ou moins par hasard, car je recherche sur une problèmatique dans le thème. Mais quelle bonne surprise de tombé sur ce genre de code, qu'une simple fonction toFixed réduit à néant.
D'ailleurs, beaucoup trop d'approximation, ce n'est pas un arrondi, c'est l'arrondi arithmétique, très connu en mathématique, mais loin d'être utilisé en informatique ...
http://bit.ly/1sIQ5AF
Le genre de site qui est loin d'aider ...