Java 中格式化双精度值
- 
          
            在 Java 中使用 DecimalFormat类格式化Double值
- 
          
            在 Java 中使用 format方法将Double值格式化
- 
          
            在 Java 中使用 printf方法格式化Double值
- 
          
            在 Java 中使用 format方法对double值进行格式化
- 
          
            在 Java 中使用 String.format()方法格式化double值
- 
          
            在 Java 中使用 DecimalFormat类格式化double值
 
本教程介绍了如何在 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