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