Jeder, der die toFix()-Methode in js verwendet hat, sollte wissen, dass diese Methode einen kleinen Fehler aufweist.
Der Übertrag von Dezimalzahlen ist unter IE und FF etwas anders.
Zum Beispiel (0,005) toFix(2)=0,00 unter dh toFix(2)=0,01 unter FF.
Dies führt zu Datenunterschieden.
Durch Überschreiben dieser Methode können wir eine Vereinheitlichung der Präzision erreichen.
Kopieren Sie den Codecode wie folgt:
Number.prototype.toFixed = Funktion(en)
{
return (parseInt(this * Math.pow( 10, s ) + 0.5)/ Math.pow( 10, s )).toString();
}
Aber es gibt immer noch ein Problem damit. In allen Browsern ist String("0.050").toFix(2)=0.1
Wir sehen, dass Sie ursprünglich zwei Dezimalstellen beibehalten wollten, am Ende aber nur eine Dezimalstelle hatten. Das heißt. Diese Überschreibung nur toFixed() verwirft automatisch die letzte 0.
Wir müssen diese Methode weiter verarbeiten.
Kopieren Sie den Codecode wie folgt:
Number.prototype.toFixed = Funktion(en)
{
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;i<s;i++){
changenum=changenum+"0";
}
}anders {
index=changenum.length-index;
for(i=0;i<(s-index)+1;i++){
changenum=changenum+"0";
}
}
return changenum;
}