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 일 때$를 리턴합니다.