Java 中格式化雙精度值

Mohammad Irfan 2023年10月12日
  1. 在 Java 中使用 DecimalFormat 類格式化 Double
  2. 在 Java 中使用 format 方法將 Double 值格式化
  3. 在 Java 中使用 printf 方法格式化 Double
  4. 在 Java 中使用 format 方法對 double 值進行格式化
  5. 在 Java 中使用 String.format() 方法格式化 double
  6. 在 Java 中使用 DecimalFormat 類格式化 double
Java 中格式化雙精度值

本教程介紹瞭如何在 Java 中格式化雙精度型別值。

Java 中有多種格式化雙精度值的方法,例如 DecimalFormat 類,printf() 方法,format() 方法,String.format() 方法等。讓我們仔細看一下例子。

在 Java 中使用 DecimalFormat 類格式化 Double

在此示例中,我們使用 DecimalFormat 類將指定型別的雙精度型別值格式化。例如,要將雙精度值格式化為小數點後三個位,我們使用 format() 方法並傳遞 DecimalFormat 建構函式的格式樣式。請參見下面的示例。

import java.text.DecimalFormat;
import java.text.NumberFormat;
public class SimpleTesting {
  public static void main(String[] args) {
    double dVal = 20.23;
    System.out.println("Double Value: " + dVal);
    String format = "0.000";
    NumberFormat formatter = new DecimalFormat(format);
    String newDVal = formatter.format(dVal);
    System.out.println("Value After Formatting: " + newDVal);
  }
}

輸出:

String value: 123
Float value: 123.0

在 Java 中使用 format 方法將 Double 值格式化

這是最簡單的示例之一,在這裡我們需要使用 System 類的 format() 方法而不是 print() 來格式化 double 型別值。此方法用作 printf() 方法,並將格式化的輸出列印到控制檯。請參見下面的示例。

public class SimpleTesting {
  public static void main(String[] args) {
    double dVal = 20.23;
    System.out.println("Double Value: " + dVal);
    System.out.format("Value after Formatting: %.3f", dVal);
  }
}

輸出:

Double Value: 20.23
Value after Formatting: 20.230

在 Java 中使用 printf 方法格式化 Double

Java 在 System 類中提供了 printf() 方法,該方法可用於將格式化的輸出列印到控制檯。我們將 .2 用作兩個小數點,並將 .3 用作三個小數點。請參見以下示例。

public class SimpleTesting {
  public static void main(String[] args) {
    double dVal = 20.23;
    System.out.println("Double Value: " + dVal);
    System.out.printf("Value after Formatting: %.2f", dVal);
    System.out.printf("\nValue after Formatting: %.3f", dVal);
  }
}

輸出:

Double Value: 20.23
Value after Formatting: 20.23
Value after Formatting: 20.230

在 Java 中使用 format 方法對 double 值進行格式化

String 類包含用於獲取 Java 中格式化的 String 的方法 format()。我們使用這些方法來格式化 Java 應用程式中的 double 型別值。請參見下面的示例。

public class SimpleTesting {
  public static void main(String[] args) {
    double dVal = 20.23;
    System.out.println("Double Value: " + dVal);
    String val1 = String.format("%.2f", dVal);
    String val2 = String.format("%.3f", dVal);
    System.out.println("Value after Formatting: " + val1);
    System.out.println("Value after Formatting: " + val2);
  }
}

輸出:

Double Value: 20.23
Value after Formatting: 20.23
Value after Formatting: 20.230

在 Java 中使用 String.format() 方法格式化 double

String.format() 方法允許再有一項功能使用分隔符(例如,逗號(,))來將 double 值格式化為數千,數百萬等。請參見以下示例。

public class SimpleTesting {
  public static void main(String[] args) {
    double dVal = 2000.23;
    System.out.println("Double Value: " + dVal);
    String val1 = String.format("$%,.2f", dVal);
    String val2 = String.format("$%,.3f", dVal);
    System.out.println("Value after Formatting: " + val1);
    System.out.println("Value after Formatting: " + val2);
  }
}

輸出:

Double Value: 2000.23
Value after Formatting: $2,000.23
Value after Formatting: $2,000.230

在 Java 中使用 DecimalFormat 類格式化 double

我們使用 NumberFormat 類的 DecimalFormat 類和 getCurrencyInstance() 方法為貨幣例項建立雙精度型值。我們使用 setMinimumFractionDigits() 方法指定雙精度型別值中小數點後的位數。請參見下面的示例。

import java.text.DecimalFormat;
import java.text.NumberFormat;
public class SimpleTesting {
  public static void main(String[] args) {
    double dVal = 2000.23;
    System.out.println("Double Value: " + dVal);
    DecimalFormat decimalFormat = (DecimalFormat) NumberFormat.getCurrencyInstance();
    decimalFormat.setMinimumFractionDigits(2);
    String val1 = decimalFormat.format(dVal);
    System.out.println("Value after Formatting: " + val1);
    decimalFormat.setMinimumFractionDigits(3);
    String val2 = decimalFormat.format(dVal);
    System.out.println("Value after Formatting: " + val2);
  }
}

輸出:

Double Value: 2000.23
Value after Formatting: $2,000.23
Value after Formatting: $2,000.230

相關文章 - Java Double