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