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 를 포맷팅할 수 있다.
'프로그래밍 > JAVA' 카테고리의 다른 글
다형성: 우리는 왜 List list = new ArrayList(); 라고 쓸까? (0) | 2022.04.04 |
---|---|
List 2차원 배열 만들기 (Array of ArrayList, 2d array with ArrayList) (0) | 2022.02.10 |
[Java] 문자열 붙이기에 반드시 StringBuilder 를 안해도 된다 (1) | 2021.06.05 |
[Java] Java Servlet Cookie 생성 및 관리 (0) | 2021.05.13 |
[Java] custom Object 리스트를 Map 리스트로 변환하기 (object to map using stream) (0) | 2021.04.22 |