-->

[Java] / [자바]

숫자 천 단위에 컴마(,) 표시하기

 

* 목표 : DecimalFormat을 이용해 숫자에 컴마(,) 표시를 해보자.

 

금액과 같이 큰 숫자를 표시할 때 숫자에 컴마가 들어가게 하는 방법은 여러 가지가 있다.

그 대표적인 방법이 바로 Format을 이용하는 방법인데 다음과 같은 함수를 만들어 사용하면 간편하다.

    private String makeStringComma(String inputStr) {    // 천단위 콤마 처리
        if (TextUtils.isEmpty(inputStr))
            return inputStr;

        String str = inputStr.replace(",",""); //기존 컴마 제거
        BigDecimal bigDecimal = new BigDecimal(str);
        DecimalFormat format = new DecimalFormat("###,###"); //포맷팅

        String returnStr = format.format(bigDecimal);
        return returnStr; //리턴
    }

먼저 inputString의 value가 null, length==0 등 일 때를 확인하기 위해 TextUtils.isEmpty(String) 메서드를 사용한다. 해당 함수로 null과 length 체크를 한 뒤에 boolean 값을 리턴한다.

그 뒤 기존 컴마를 제거하기 위해 String의 replace 함수를 이용해 타깃인 컴마를 공백으로 바꿔준다. 

BigDecimal은 Double과 같이 큰 숫자를 십진법으로 나타낼 때 많이 쓰인다.

BigDecimal?

  • BigDecimal Java 언어에서 숫자를 정밀하게 저장하고 표현할 수 있는 유일한 방법이다.
  • 소수점을 저장할 수 있는 가장 크기가 큰 타입인 double은 소수점의 정밀도에 있어 한계가 있어 값이 유실될 수 있다.
  • Java 언어에서 돈과 소수점을 다룬다면 BigDecimal은 선택이 아니라 필수이다.
  • BigDecimal의 유일한 단점은 느린 속도와 기본 타입보다 조금 불편한 사용법 뿐이다. 
                 

(출처 : jsonobject.tistory.com/466)

다음 DecimalFormat을 이용해 숫자를 내가 지정한 포맷인 "###,###" 로 적용한다.

그리고 해당 포맷을 적용한 String 값을 리턴한다.

 

 

 

+ Recent posts