Cualquiera que haya utilizado el método toFix() en js debe saber que hay un pequeño ERROR en este método.
El transporte de decimales es un poco diferente en IE y FF.
Por ejemplo (0,005) toFix(2)=0,00 en, es decir, toFix(2)=0,01 en FF.
Esto provocará diferencias en los datos.
Podemos lograr la unificación de la precisión anulando este método.
Copie el código de código de la siguiente manera:
Número.prototipo.toFixed = función(es)
{
return (parseInt(this * Math.pow( 10, s ) + 0.5)/ Math.pow( 10, s )).toString();
}
Pero todavía hay un problema con esto. En todos los navegadores, String("0.050").toFix(2)=0.1.
Podemos ver que originalmente querías mantener dos decimales pero terminaste con un decimal. Es decir. Esta anulación solo de toFixed() descartará automáticamente el último 0.
Necesitamos realizar más procesamiento en este método.
Copie el código de código de la siguiente manera:
Número.prototipo.toFixed = función(es)
{
changenum=(parseInt(this * Math.pow( 10, s ) + 0.5)/ Math.pow( 10, s )).toString();
index=changenum.indexOf(".");
si(índice<0&&s>0){
número de cambio=número de cambio+".";
para(i=0;i<s;i++){
número de cambio=número de cambio+"0";
}
}demás {
index=changenum.length-index;
for(i=0;i<(índice s)+1;i++){
número de cambio=número de cambio+"0";
}
}
devolver número de cambio;
}