특정 숫자값에 대한 화면 출력을 위해서 다음과 같이 콤마(,)가 들어간 숫자 형식을 사용하고 싶은 경우가 있습니다.
1,000,000 123,456 10,500
이럴 때는 NumberFormat 클래스를 사용할 수 있습니다.
일반적인 사용 방법은 다음과 같습니다.
NumberFormat.getInstance([Locale 정보]).format([Int형 변수]);
getInstance
메소드에는 현재 시스템 또는 특정 Locale 정보가 들어가야 합니다. 현재 시스템의 지역 정보는 Locale.getDefault()
을 통해 가져올 수 있으며, 이외에 Locale.US
, Locale.KOREA
등으로도 Locale 정보를 가져올 수 있습니다.
일반적인 숫자의 경우 getInstance()
대신 getNumberInstance()
를 사용해도 됩니다. 이 두 메소드의 실행 결과는 같습니다.
다음은 NumberFormat 클래스를 사용하여 숫자 형식으로 나타내는 예시입니다.
int testNum = 100000; // 현재 로케일에 따라 숫자 형식 표시 // 실행 결과 : 100,000 Log.d("결과: ", NumberFormat.getInstance(Locale.getDefault()).format(testNum)); // 'US' 로케일에 대한 숫자 형식 표시 // 실행 결과 : 100,000 Log.d("결과: ", NumberFormat.getInstance(Locale.US).format(testNum));
NumberFormat을 여러번 호출해야 하는 경우 다음과 같이 형식을 미리 선언해도 됩니다.
int testNum1 = 100000; int testNum2 = 1000; String result1 = ""; String result2 = ""; // NumberFormat 형식을 미리 선언 NumberFormat numf = NumberFormat.getInstance(Locale.getDefault()); // 사용할 때는 아래와 같이 간단하게 result1 = numf.format(testNum1); result2 = numf.format(testNum2); // 로그 데이터로 출력 // 결과 1: 100,000, 결과 2: 1,000 Log.d("결과 1: ", result1); Log.d("결과 2: ", result2);
만약 숫자가 ‘통화’를 나타낼 경우에는 getCurrencyInstance
메소드를 사용하는 것이 좋습니다.
int price = 10000; String result = ""; // 현재 국가 설정의 통화 표시 result = NumberFormat.getCurrencyInstance(Locale.getDefault()).format(price); // '달러' 단위 통화 표시 result = NumberFormat.getCurrencyInstance(Locale.US).format(price); // '원' 단위 통화 표시 result = NumberFormat.getCurrencyInstance(Locale.KOREA).format(price); Log.d("결과: ", result);
결과는 $100,000.00
또는 ₩100,000
와 같이 나타날 것입니다.
format
메소드의 인자값에는 반드시 Integer 또는 int 데이터 타입의 변수가 들어가야 합니다. 만약 String 타입의 값을 넣게 되면 다음과 같은 에러가 발생합니다.
java.lang.IllegalArgumentException: Cannot format given Object as a Number
이외에도 정수형 값으로 반환하는 getIntegerInstance
메소드와 백분율 형태로 반환하는 getPercentInstance
메소드 등이 있습니다. 자세한 내용은 아래 참고 자료 문서를 읽어보시면 좋을 듯 합니다.
리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…
JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…
NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…
언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…
애플 에어팟 프로 2 (AirPods Pro 2) 케이스에는 스피커가 내장되어 있습니다. 그런데 간혹 아무 것도…