Java의 통화 형식

Rashmi Patidar 2023년10월12일
  1. Java에서 논리 함수를 사용하여 통화 변환
  2. Java에서NumberFormat클래스를 사용하여 통화 변환
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 Patidar avatar Rashmi Patidar avatar

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

관련 문장 - Java String