HOWTO · Java

Java의 통화 형식

이 기사에서는 Java의 통화 형식을 소개합니다.

다음은 Java에서 원하는 값으로 통화를 변환 할 수있는 몇 가지 방법입니다.

Java에서 논리 함수를 사용하여 통화 변환

public class CurrencyConversion {
  public static void main(String[] args) {
    double currency_value = 10.9897;
    float epsilon = 0.004f;
    if (Math.abs(Math.round(currency_value) - currency_value) < epsilon) {
      System.out.printf("%10.0f", currency_value);
    } else {
      System.out.printf("%10.2f", currency_value);
    }
  }
}

위의CurrencyConversion코드에는 10 진수 형식의 통화 값을 보유하는 변수currency_value가 있습니다. epsilon은 다른 값을 보유하는 또 다른 변수입니다. 값은 차이에 대해 논리 연산을 수행하는 임의의 부동 숫자가 될 수 있습니다. 반올림 된 숫자와 실제 숫자 간의 차이의 절대 값을 취하는 if 문 논리가 정의됩니다. 절대 값은 엡실론 값과 비교됩니다. 프로그램은 십진수 값의 실제 차이를 0 또는 0보다 큰 값으로 변환하는 함수Math.abs()를 사용합니다.

조건문 출력에 따라10.0f또는10.2f형식으로 인쇄합니다. 주어진 두 형식 지정자는 정수 부분을10으로 나타내며 전체 문자열에 10 개의 문자가 포함되어 있음을 의미합니다. 소수 부분은 소수점 이하2까지 형식을 지정합니다.

아래 콘솔 로그에서는 소수점 2 자리까지 절대 변환 된 값을 인쇄합니다.

10.99  //10.9897
10	   //10
10	   //10.0008

첫 번째 경우 통화 값이10.9897이면10.99로 반올림됩니다. 또한 통화 값이10으로 변경되면 입력 통화에서 반올림되지 않으므로 출력은 여전히10을 반환합니다. 그리고 통화 값이10.0008로 변경되면 금액은10값으로 반올림됩니다.

Java에서NumberFormat클래스를 사용하여 통화 변환

import java.text.NumberFormat;

public class CurrencyConversion {
  public static void main(String[] args) {
    double money = 100.1;
    NumberFormat formatter = NumberFormat.getCurrencyInstance();
    String moneyString = formatter.format(money);
    System.out.println(moneyString);
  }
}

위의 코드 블록은getCurrencyInstance함수의 정적 메소드를 호출하는NumberFormat클래스를 사용합니다. 이 메서드는 기본 로케일로 형식의 통화 형식을 반환합니다. 또한 지역을 지정하기 위해 로케일 값을 사용합니다. 그리고 통화 인스턴스는 정의 된 지역 또는 지역에 따라Rupees Dollar형식 일 수 있습니다. 이제 포맷터 인스턴스를 사용하여 포맷 메서드를 호출합니다. format메소드는 매개 변수 double money를 취하고String값을 리턴합니다. 이 함수는 반올림이 부적절하게 발생하면ArithmeticException을 발생시킬 수 있습니다.

위의 코드는 다음 출력을 생성합니다.

Rs.100.10

그러나 로케일 값이 다른 경우 다를 수 있습니다. 로케일 값이Locale.CHINA인 경우 출력은일 수 있습니다. 또는 로케일이Locale.CANADA 일 때$를 리턴합니다.