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 程式碼中,有一個變數 currency_value,以十進位制格式儲存貨幣值。epsilon 是另一個具有不同值的變數。該值可以是對其差值執行一些邏輯運算的任何浮點數。if 語句邏輯被定義為取捨入數與實際數之差的絕對值。將絕對值與 epsilon 值進行比較。該程式使用函式 Math.abs() 將十進位制值的實際差值轉換為零或大於零。

根據條件語句的輸出,它以 10.0f10.2f 格式列印。給定的兩種格式說明符表示,整數部分為 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 類。該方法在預設語言環境中返回格式的貨幣格式。它還需要一個 locale 值來指定一個區域。並且貨幣例項可以是基於定義的區域或區域的 Rupees``Dollar 格式。現在格式化程式例項用於呼叫格式化方法。format 方法接受一個引數 double money 並返回一個 String 值。當舍入不正確時,該函式可能會丟擲 ArithmeticException

上面的程式碼建立了以下輸出。

Rs.100.10

但是當語言環境值不同時,它可能會有所不同。當語言環境值為 Locale.CHINA 時,輸出是 。或者當 Locale 為 Locale.CANADA,輸出為 $

作者: Rashmi Patidar
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