Maison  >  Article  >  interface Web  >  Pourquoi toFixed(2) arrondit-il incorrectement certaines valeurs décimales ?

Pourquoi toFixed(2) arrondit-il incorrectement certaines valeurs décimales ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-22 14:40:02417parcourir

Why is toFixed(2) Rounding Incorrectly for Certain Decimal Values?

Javascript toFixed Rounding Diverpancies

toFixed(2) n'arrondit pas certaines valeurs décimales, affichant 859,38 au lieu de 859,39 dans l'exemple fourni . Cet écart peut être attribué aux variations dans les implémentations de la méthode toFixed() dans les navigateurs.

Pour contourner ce problème et garantir un arrondi cohérent entre les navigateurs, envisagez d'utiliser la méthode toFixed10() recommandée par blg. Cette méthode fournit un arrondi précis même pour les valeurs de précision étendues.

Voici un extrait de code mis à jour qui intègre toFixed10() :

function toFixed(num, precision) {
    return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision);
}
...
$('#lblTotalSprice').text('$' + addCommas(toFixed(currSprice, 2)));
$('#lblTotalPrice').text('$' + addCommas(toFixed(currPrice, 2)));
$('#lblTotalDiscount').text('$' + addCommas(toFixed(currDiscount, 2)));
$('#lblTotalDeposit').text('$' + addCommas(toFixed(currDeposit, 2)));

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn