만족은 하되 안주하지는 말자

기록해야 기억한다

프로그래밍/JAVA

[Java] 정수 콤마 넣기 (천원 단위 변환, 금액 변환)

D36choi 2021. 8. 2. 16:42
728x90

개발할 때, 금액을 보기 좋게 표현하려면 10000원 -> 10,000원으로 천원 단위마다 , (comma) 를 추가해줘야 할 때가 있다.

방법1

DecimalFormat 을 이용한다

DecimalFormat 은 NumberFormat의 서브클래스다. 십진법 숫자를 다양한 특징을 가진 숫자로 변환해주는 기능을 가지고 있다.
통화($100), 퍼센트(12%), 고정소수점 등 다양하게 숫자를 표현할 수 있다.

일반적으로 생성자를 호출하지 않고 factory method를 활용하는 것이 일반적이다.

  @Test
  void format_test() {
    int price = 125000;
    final String format = DecimalFormat.getInstance().format(price);
    Assertions.assertThat(format).isEqualTo("125,000");

  }

만약 ,가 아닌 경우?

소수점이 들어가있다?

만약 "125,000" 의 결과가 나오지 않는다면 개발 환경의 로케일이 US가 아닐 확률이 크다.

그 때는 Instance 를 가져올 때 파라미터로 Locale 파라미터를 제공하자.

final String format = DecimalFormat.getInstance(Locale.US).format(price);

방법2

String.format() method를 활용한다

  @Test
  void format_test2() {
    int price = 32125000;
    final String format = String.format("%,d",price);
    Assertions.assertThat(format).isEqualTo("32,125,000");
  }

더 쉬운 방법일 수 있다. String 의 static method인 format 을 활용한다.
%,d 를 통해 정수의 comma 를 포맷팅할 수 있다.