반응형

toCurrency


숫자 타입 n 을 인자로 받아 지정한 통화 포맷을 반환하는 toCurrency 함수.
Intl.NumberFormat 메서드를 사용하면 국가/통화에 대한 sensitive formatting을 활성화할 수 있다.

 

const toCurrency = (n, currency, LanguageFormat = undefined) =>
  Intl.NumberFormat(LanguageFormat, {
    style: 'currency',
    currency,
  }).format(n);
// €123,456.79  | currency: Euro | currencyLangFormat: Local
toCurrency(123456.789, 'EUR'); 
// $123,456.79  | currency: US Dollar | currencyLangFormat: English (United States)
toCurrency(123456.789, 'USD', 'en-us'); 
// ۱۲۳٬۴۵۶٫۷۹ ؜$ | currency: US Dollar | currencyLangFormat: Farsi
toCurrency(123456.789, 'USD', 'fa'); 
// ¥322,342,436,423 | currency: Japanese Yen | currencyLangFormat: Local
toCurrency(322342436423.2435, 'JPY'); 
// 322 342 436 423 ¥ | currency: Japanese Yen | currencyLangFormat: Finnish
toCurrency(322342436423.2435, 'JPY', 'fi');

 

  • currency : KRW, USD 같은 ISO 통화 코드 / 통화 코드 리스트는 링크 참고
  • LanguageFormat : ko-kr, en-us 같은 Locale 코드 (ko, en 만 입력해도 됨)
    • 배열 형식으로 대체 언어를 지정할 수도 있음 e.g. ['ban', 'id']
    • 아무값도 넘기지 않으면 사용자 브라우저에 지정된 Locale(navigator.language) 값 사용
    • 더 많은 로케일 리스트는 SAP 사이트 참고

 

번외 — 천 단위 콤마


숫자 천 단위마다 콤마를 추가할 때도 Intl.NumberFormat 를 사용할 수 있다. 결과는 toLocaleString 메서드를 사용했을 때와 동일하다.

const number = 889762;

Intl.NumberFormat().format(number); // '889,762'
number.toLocaleString(); // '889,762'

 


글 수정사항은 노션 페이지에 가장 빠르게 반영됩니다. 링크를 참고해 주세요
반응형