Arrondir les nombres à deux décimales lorsque cela est nécessaire
Lors du traitement de données numériques, il est souvent nécessaire d'arrondir les valeurs aux décimales spécifiées. Cependant, dans certains cas, nous souhaitons arrondir uniquement si la valeur n'est pas déjà arrondie à la précision souhaitée.
Considérez le scénario suivant : vous souhaitez arrondir les nombres à deux décimales au maximum, mais seulement si nécessaire . Par exemple :
Input: 10 1.7777777 9.1 Output: 10 1.78 9.1
Utilisation de Math.round()
Une solution possible consiste à utiliser la méthode Math.round() :
let roundedNum = Math.round(num * 100) / 100;
Cette approche multiplie le nombre par 100 avant de l'arrondir à un nombre entier (en décalant effectivement la virgule décimale de deux places vers la droite), puis le divise reculez de 100 pour obtenir la valeur avec deux décimales.
Utilisation de Number.EPSILON
Cependant, cette approche ne gère pas correctement les cas limites. Par exemple, 1,005 serait arrondi à 1,01 au lieu de 1,00. Pour résoudre ce problème, nous pouvons utiliser Number.EPSILON :
let roundedNum = Math.round((num + Number.EPSILON) * 100) / 100;
Number.EPSILON représente la plus petite différence entre deux nombres à virgule flottante considérée comme significative. L'ajouter au nombre garantit que la valeur est arrondie correctement, même dans les cas limites.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!