Javascript

[javascript ]천단위 콤마(소수점 포함)

하이바네 2022. 6. 15. 10:42
반응형

javascript에서 천단위 콤마를 하기 위해서는 일반적으로 replace를 사용하며, 다른 방법으로는 toLocaleString을 사용하는 방법도 있다.

 

먼저 replace에 대해서 보겠다.

 

1. replace(정규식 사용)

const ori_val = 12345.6789;
const changed_val = ori_val.toString().replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",");

 

위의 정규식을 사용하게되면 결과는 '12,345.6789' 값이 나올 것이다.

 

2. toLocaleString

해당 방법에 대한 설명은 아래의 사이트에 자세히 나와있다.

 

Number.prototype.toLocaleString() - JavaScript | MDN

The toLocaleString() method returns a string with a language-sensitive representation of this number.

developer.mozilla.org

 

 

요약해서 정리하자면 ie에서는 toLocaleString메서드에 파라미터가 지원되지 않는다.

 

예제 소스는 아래와 같다.

 

const ori_val = 12345.6789;
const changed_val = ori_val.toLocaleString()

 

 

정규식에 아직까지도 익숙해지지 않아 개인적으로 toLocaleString을 사용하는게 너무 편하다.

 

 

ie만 아니면 파라미터를 넣을 수 있고 거기에는 소수점 자리수에 대한 옵션도 있다. 위에 걸은 링크를 보시면 자세한 옵션들을 확인 가능하다. (maximumFractionDigits의 값은 3이 default)

const ori_val = 12345.6789;
const changed_val = ori_val.toLocaleString('ko-KR', {maximumFractionDigits: 4});

 

728x90