프로그래밍/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 를 포맷팅할 수 있다.