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
일 때$
를 리턴합니다.
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn