본문 바로가기
IT 자료

JavaScript toLocaleString() Method

by 성곤 2015. 1. 9.
반응형

JavaScript toLocaleString() Method



얼마 전, (갑)업체에서 확인요청이 들어왔다.


숫자가 이상하다는 거였는데, 같은 익스플로러에서 어떻게 값이 다르게 나올 수 있냐는 거였다.


일단 DB에서 정상적인 값을 출력하는지 보고, 사용자의 익스플로러 버전과 호환성보기를 확인해보았다.



확인 결과, 문제점은 'toLocaleString()' 부분이였다.


toLocaleString()는 문자열로 반환을 하는데, 숫자를  toLocaleString() 하게되면 그냥 String형식일 뿐이다. 숫자의 값은 변하지 않는다...


뭐... 날짜같은거 Date()는 시스템에 따라서 다르게 String으로 표현되지만...

숫자도 다르게 표현될 줄은 몰랐네..

(아, 물론 내가 저거 만든거 아님... 최초개발자는 2008년쯤인듯)




최신버전의 크롬, 파이어폭스, 익스플로러11 로 테스트를 하면 정상적으로 나온다.


하지만, 문제가 되는게.... 익스플로러 9 이였다. (다른 버전의 익스플로러는 확인하지 않았다.)


익스플로러 9에서는 toLocaleString()를 하게되면, 소수점 둘째자리까지만 표현된다.




예시)

n = 469.9999 ;


익스플로러11에서는

Number(n).toLocaleString(); 값은 똑같은 '469.9999' 이다.


하지만, 익스플로러9에서는

Number(n).toLocaleString(); 값은 소수점 셋째자리에서 반올림하여, '470.00' 값이 출력된다.



웹이 정말 이것저것 신경을 많이 써야한다... ㅠㅠ



toLocaleString() Method 자세한 설명

: http://msdn.microsoft.com/ko-kr/library/



반응형