js에서 toFix() 메서드를 사용해 본 사람이라면 이 메서드에 작은 버그가 있다는 것을 알아야 합니다.
IE와 FF에서는 소수점 이하 자릿수가 약간 다릅니다.
예를 들어 IE에서는 (0.005) toFix(2)=0.00이고, FF에서는 toFix(2)=0.01입니다.
이로 인해 데이터 차이가 발생합니다.
이 방법을 재정의하면 정밀도의 통일이 가능합니다.
Number.prototype.toFixed = function(s )
{
return (parseInt(this * Math.pow( 10, s ) 0.5)/ Math.pow( 10, s )).toString()
}
하지만 모든 브라우저에서 여전히 문제가 있습니다. String("0.050").toFix(2)=0.1
원래 소수점 이하 두 자리를 유지하려고 했으나 1이 되었습니다. 즉, 이 재정의의 유일한 toFixed()는 마지막 0을 자동으로 삭제합니다.
이 메서드를 추가로 처리해야 합니다.
Number.prototype.toFixed = function(s )
{
changenum=(parseInt(this * Math.pow( 10, s ) 0.5)/ Math.pow( 10, s )).toString()
index=changenum.indexOf(" .") ;
if(index0){
changenum=changenum ".";
for(i=0;ichangenum=changenum "0 ";
}
}else {
index=changenum.length-index;
for(i=0;i 변경 번호=변경 번호 "0"
}
}
변경 번호 반환
}