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) toFix(2)=0,00 sous, c'est-à-dire toFix(2)=0,01 sous FF.
Cela entraînera des différences de données.
Nous pouvons parvenir à l’unification de la précision en remplaçant cette méthode.
Copiez le code comme suit :
Number.prototype.toFixed = fonction(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. Dans tous les navigateurs, String("0.050").toFix(2)=0.1.
Nous pouvons voir que vous souhaitiez initialement conserver deux décimales, mais que vous vous êtes retrouvé avec une seule décimale. C'est à dire. Ce remplacement uniquement toFixed() supprimera automatiquement le dernier 0.
Nous devons effectuer un traitement plus approfondi sur cette méthode.
Copiez le code comme suit :
Number.prototype.toFixed = fonction(s)
{
changenum=(parseInt(this * Math.pow( 10, s ) + 0.5)/ Math.pow( 10, s )).toString();
index=changenum.indexOf(".");
si(index<0&&s>0){
changenum=changenum+".";
pour(i=0;i<s;i++){
changenum=changenum+"0";
}
}autre {
index=changenum.length-index;
pour(i=0;i<(s-index)+1;i++){
changenum=changenum+"0";
}
}
retourner le numéro de changement ;
}