Quem já utilizou o método toFix() em js deve saber que existe um pequeno BUG nesse método.
O transporte de decimais é um pouco diferente no IE e no FF.
Por exemplo (0,005) toFix(2)=0,00 em ou seja, toFix(2)=0,01 em FF.
Isso causará diferenças de dados.
Podemos alcançar a unificação da precisão substituindo este método.
Copie o código do código da seguinte forma:
Number.prototype.toFixed = função(ões)
{
return (parseInt(este * Math.pow( 10, s ) + 0,5)/ Math.pow( 10, s )).toString();
}
Mas ainda há um problema com isso. Em todos os navegadores, String("0.050").toFix(2)=0.1.
Podemos ver que originalmente você queria manter duas casas decimais, mas acabou com uma casa decimal. Quer dizer. Esta substituição apenas toFixed() descartará automaticamente o último 0.
Precisamos fazer processamento adicional neste método.
Copie o código do código da seguinte forma:
Number.prototype.toFixed = função(ões)
{
changenum=(parseInt(this * Math.pow( 10, s ) + 0,5)/ Math.pow( 10, s )).toString();
index=changenum.indexOf(".");
if(índice<0&&s>0){
alterarnum=alterarnum+".";
for(i=0;i<s;i++){
alterarnum=alterarnum+"0";
}
}outro {
index=changenum.length-index;
for(i=0;i<(s-index)+1;i++){
alterarnum=alterarnum+"0";
}
}
retornar mudançanum;
}