Java - 숫자 3자리마다 콤마(,) 찍는 방법

금액을 표현할 때 숫자 3자리마다 콤마(,)를 찍고 싶을 때가 있습니다.

10000 -> 10,000
12345 -> 12,345

DecimalFormat을 이용한 방법

DecimalFormat을 이용하여 문자열 포맷을 정의할 수 있습니다.

문자열 형식은 DecimalFormat 객체를 생성할 때 인자로 전달합니다.

3자리마다 콤마를 찍으려면 아래처럼 "###,###" 포맷으로 설정하면 됩니다.

DecimalFormat decFormat = new DecimalFormat("###,###");

String str = decFormat.format(12300000);
System.out.println(str);

str = decFormat.format(505000);
System.out.println(str);

Output:

12,300,000
505,000

소수 출력

만약 소수도 출력하고 싶다면, ".##" 처럼 포맷을 입력하면 됩니다.

"###,###.##"는 3자리마다 콤마를 찍고, 소수 2자리까지만 출력한다는 의미입니다.

NumberFormat numberFormat = NumberFormat.getInstance();

String str = numberFormat.format(123000);
System.out.println(str);

str = numberFormat.format(123000.7891);
System.out.println(str);

Output:

123,000
123,000.79

NumberFormat을 이용한 방법

NumberFormat을 이용하여 숫자에 콤마를 찍을 수 있습니다.

NumberFormat은 설정된 Locale에서 사용하는 표기법으로 문자열을 formatting합니다.

NumberFormat 객체를 생성할 때, getInstance()에 Locale 인자를 전달하지 않으면, Locale.US가 기본값으로 설정되며, 미국 숫자 표기법을 따라서, 3자리마다 콤마를 찍습니다.

NumberFormat numberFormat = NumberFormat.getInstance();

String str = numberFormat.format(123000);
System.out.println(str);

str = numberFormat.format(123000.7891);
System.out.println(str);

Output:

123,000
123,000.789

만약 다른 국가의 숫자 표기법으로 출력하고 싶다면 NumberFormat을 생성할 때 Locale을 인자로 전달하면 됩니다.

NumberFormat numberFormat = NumberFormat.getInstance(Locale.ITALY);

NumberFormat numberFormat2 = NumberFormat.getInstance(Locale.CHINA);
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha