Javascript toFixed n'arrondit pas avec précision
En Javascript, la méthode toFixed() est utilisée pour formater les nombres en chaînes. Cependant, les utilisateurs ont rencontré un comportement d'arrondi inattendu lors de l'utilisation de cette méthode, en particulier dans les cas où elle ne parvient pas à arrondir correctement les nombres.
La raison de cet écart d'arrondi réside dans l'arithmétique à virgule flottante sous-jacente utilisée par Javascript. Les nombres à virgule flottante peuvent parfois entraîner des erreurs de précision, en particulier lorsque vous travaillez avec des valeurs très petites ou très grandes.
Pour résoudre ce problème, envisagez la solution de contournement suivante :
La solution fournie suggère d'utiliser la méthode toFixed10(), qui est une version modifiée de la méthode toFixed() originale qui garantit un arrondi plus précis. Cette méthode arrondit le nombre à 10 décimales, ce qui est suffisamment précis pour la plupart des applications pratiques.
La solution comprend également une fonction toFixed() personnalisée qui effectue un arrondi similaire à l'aide de Math.round() et Math.pow. () méthodes. Cette fonction vous permet de spécifier la précision souhaitée, garantissant des résultats cohérents entre les navigateurs.
Mise en œuvre
En incorporant la méthode toFixed() modifiée ou la fonction personnalisée dans votre Javascript code, vous pouvez résoudre efficacement le problème d'arrondi et réaliser des calculs numériques précis :
function toFixed( num, precision ) { return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision); } // Usage: var number = 859.385; console.log(toFixed(number, 2)); // Output: "859.39"
Conclusion
En comprenant les limites de la méthode toFixed() de Javascript et en utilisant le Solution de contournement mentionnée ci-dessus, les programmeurs peuvent surmonter les imprécisions d'arrondi et garantir des calculs numériques fiables dans leurs applications.
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!