[JAVA] NumberFormat 클래스
NumberFormat 클래스
NumberFormat 클래스는 수에 대한 포괄적인 포맷 기능을 제공한다.
NumberFormat 클래스는 정적 메소드이므로 new 연산자를 사용하여 객체를 호출하지 않는다.
static NumberFormat getCurrencyInstance() 현재 지역의 화폐 양식을 나타내는 NumberFormat 객체를 반환한다. static NumberFormat getPercentInstance() 현재 지역의 백분율 양식을 나타내는 NumberFormat 객체를 반환한다. |
getCurrencyInstance() 메소드는 화폐 값을 편집하는 format 객체를 반환하고, getPercentInstance() 메소드는 백분율을 편집하는 format 객체를 반환한다.
숫자는 format() 메소드를 통해 각 NumberFormatter에 맞는 양식으로 변환하여 String 객체로 반환한다.
예를들어, 10을 화폐 값(\)로 변환하려면
String price = NumberFormat.getCurrencyInstance().format(10);
이렇게 하면 price 에는 \10 가 반환된다.
* getCurrencyInstance()와 getPercentInstance()는 현재 지역의 화폐와 백분율 양식을 반영하므로, 한국에서는 기본값으로 \와 %로 반환된다.
$로 반환을 해야 되는 경우는 Locale.US 를 입력해준다.
String price = NumberFormat.getCurrencyInstance(Locale.US).format(10);
이렇게 하면 price 에는 $10 이 반환된다.
아래에서 물품 구매 갯수와 가격을 입력받아 부가세를 적용하여 총금액과 부가세를 \와 %로 결과를 출력하는 예제를 보자
import java.text.NumberFormat; import java.util.Scanner; public class NumberFormatTest { public static void main(String[] args) { final double TAX_RATE = 0.1; // 10% 부가세 int quantity; // 구매 갯수; double subtotal, tax, totalCost, unitPrice; Scanner scan = new Scanner(System.in); // 화폐 양식 NumberFormat을 반환한다. NumberFormat fmt1 = NumberFormat.getCurrencyInstance(); // 백분율 양식 NumberFormat을 반환한다. NumberFormat fmt2 = NumberFormat.getPercentInstance(); // 물품 구매 갯수를 입력한다. System.out.print("물품 구매 갯수를 입력하세요 : "); quantity = scan.nextInt(); // 물품 가격을 입력한다. System.out.print("가격을 입력하세요 : "); unitPrice = scan.nextDouble(); // 금액을 계산한 후, 부가세를 적용하여 총금액을 반환한다. subtotal = quantity * unitPrice; tax = subtotal * TAX_RATE; totalCost = subtotal + tax; // format에 맞춰 String으로 값을 반환한 후 출력한다. System.out.println("세전 구입 금액 : "+ fmt1.format(subtotal)); System.out.println("부가세 : " + fmt1.format(tax) + " , " + fmt2.format(TAX_RATE)); System.out.println("총금액 : " + fmt1.format(totalCost)); } } |
* 실행 결과
화폐 형식을 $로 표시하기 위해, getCurrencyInstance(Locale.US)를 적용해보자.
출처: https://hyeonstorage.tistory.com/162?category=557602 [개발이 하고 싶어요]
'JAVA > Java' 카테고리의 다른 글
[JAVA] Array 배열, 이중 배열, 다중 배열 (0) | 2019.09.30 |
---|---|
[JAVA] 열거타입 enum (0) | 2019.09.30 |
[JAVA] Wrapper class 란? 그리고 AutoBoxing (0) | 2019.09.30 |
[JAVA] DecimalFormat 클래스 (0) | 2019.09.30 |
[JAVA] Math 클래스 (0) | 2019.09.30 |
[JAVA] Random 클래스에 대해서 (0) | 2019.09.30 |
[JAVA] String 클래스에 대해서 (0) | 2019.09.30 |
[JAVA] 문자열 입력과 출력 (Scanner) (0) | 2019.09.30 |