Maison  >  Article  >  interface Web  >  Réécriture de la méthode js toFixed() pour parvenir à l'unification des compétences Precision_Javascript

Réécriture de la méthode js toFixed() pour parvenir à l'unification des compétences Precision_Javascript

WBOY
WBOYoriginal
2016-05-16 16:56:442845parcourir

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.

Copier le code Le code est le suivant :

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.
Copier le code Le code est le suivant :

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