toFixed n'arrondit pas avec précision en Javascript
Dans le contexte de la gestion des valeurs des cases à cocher en Javascript, les utilisateurs peuvent rencontrer un défi où le toFixed(2 ) la méthode n’arrondit pas les valeurs de manière appropriée. Par exemple, une valeur de 859,385 peut s'afficher sous la forme 859,38 au lieu de 859,39 attendu.
Incohérences et précision du navigateur
Il est important de noter que la méthode toFixed peut se comporter différemment en fonction du navigateur utilisé. Pour résoudre les incohérences des navigateurs et garantir un arrondi cohérent entre les navigateurs, la solution recommandée consiste à utiliser la méthode toFixed10 ou la fonction personnalisée suivante :
<code class="javascript">function toFixed( num, precision ) { return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision); }</code>
Implémentation de fonctions personnalisées
L'intégration de la fonction toFixed personnalisée dans le code fourni nécessiterait la modification suivante :
<code class="javascript">var standardprice = parseFloat($('#hsprice_'+this.id.split('_')[1]).val()); var price = parseFloat($('#hprice_'+this.id.split('_')[1]).val()); var discount = parseFloat($('#hdiscount_'+this.id.split('_')[1]).val()); var deposit = parseFloat($('#hdeposit_'+this.id.split('_')[1]).val()); var currSprice = parseFloat($('#hTotalSprice').val()); var currPrice = parseFloat($('#hTotalPrice').val()); var currDiscount = parseFloat($('#hTotalDiscount').val()); var currDeposit = parseFloat($('#hTotalDeposit').val()); currSprice += standardprice; currPrice += price; currDiscount += discount; currDeposit += deposit; $('#lblTotalSprice').text('$'+addCommas(toFixed(currSprice, 2))); $('#lblTotalPrice').text('$'+addCommas(toFixed(currPrice, 2))); $('#lblTotalDiscount').text('$'+addCommas(toFixed(currDiscount, 2))); $('#lblTotalDeposit').text('$'+addCommas(toFixed(currDeposit, 2))); $('#hTotalSprice').val(toFixed(currSprice, 2)); $('#hTotalPrice').val(toFixed(currPrice, 2)); $('#hTotalDiscount').val(toFixed(currDiscount, 2)); $('#hTotalDeposit').val(toFixed(currDeposit, 2));</code>
En implémentant cette fonction personnalisée, vous pouvez garantir un arrondi précis quelles que soient les variations du navigateur.
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!