Quiconque a utilisé la méthode toFix() dans js doit savoir qu'il y a un petit bug dans cette méthode.
Le port des décimales est un peu différent sous IE et FF.
Par exemple (0,005) sous IE toFix(2)=0,00. Sous FF toFix(2)=0,01
Cela entraînera des différences de données.
Nous pouvons parvenir à l’unification de la précision en remplaçant cette méthode.
Number.prototype.toFixed = function(s )
{
return (parseInt(this * Math.pow( 10, s ) 0.5)/ Math.pow( 10, s )).toString(
}
Mais il y a toujours un problème avec cela. Sous tous les navigateurs, String("0.050").toFix(2)=0.1
Nous pouvons voir que vous vouliez initialement conserver deux décimales mais c'est devenu une. C'est à dire. Le seul toFixed() dans ce remplacement supprimera automatiquement le dernier 0.
Nous devons effectuer un traitement plus approfondi sur cette méthode.
Number.prototype.toFixed = function(s )
{
changenum=(parseInt(this * Math.pow( 10, s ) 0.5)/ Math.pow( 10, s )).toString();
index=changenum.indexOf(" .") ;
if(index<0&&s>0){
changenum=changenum ".";
for(i=0;ichangenum=changenum "0 ";
}
}else {
index=changenum.length-index;
for(i=0;i<(s-index) 1;i ){
changenum=changenum "0";
}
}
return changenum;
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