在很多情况下需要对输出的信息进行格式化,尤其是当输入的内容为数字的时候,需要按照特定的格式进行输出。另外对运行的结果可能需要进行特殊的处理,例如结果只保留小数点后两位。对数字进行格式化可以使用下面的两个类:
n java.text.DecimalFormat
n java.text.NumberFormat
NumberFormat
是抽象类,所以主要使用DecimalFormat
完成格式化。通常使用DecimalFormat
的构造函数来生成格式,例如:
NumberFormat nf = new DecimalFormat("0.00");
“0.00
”表示数字的格式为小数点后保留两位,如果整数部分为0
,0
不能省略,小数点后如果是0
也不能省略。下面是3
个转换的例子:
10.374
——〉
10.37
10.301
——〉
10.30
0.301
——〉
0.30
在格式中另外还有一个符号“#
”,表示一位数字,如果是0
不显示。下面的例子使用了“#
”号,并且整数部分每3
位中间使用“,
”隔开。
NumberFormat nf2 = new DecimalFormat("###,###,###.##");
下面的例子使用两种不同的格式对float
类型变量进行格式化:
【例8-3
】
// NumberFormatTest.java
import java.text.NumberFormat;
import java.text.DecimalFormat;
public class NumberFormatTest {
public static void main(String[] args) {
// 要格式化的数字
double a = 1234567.7014;
// 构造一种格式
NumberFormat nf2 = new DecimalFormat("###,###,###.##");
// 构造一种格式
NumberFormat nf = new DecimalFormat("0.00");
// 使用第一种格式进行格式化
String f1 = nf.format(a);
// 使用第二种格式进行格式化
String f2 = nf2.format(a);
// 输出原来的内容
System.out.println("原来的格式:"+a);
// 输出第一种格式化的结果
System.out.println("使用0.00进行格式化:"+f1);
// 输出第二种格式化的结果
System.out.println("使用###,###,###.##进行格式化:"+f2);
}
}
运行的结果如下:
原来的格式:1234567.7014
使用0.00进行格式化:1234567.70
使用###,###,###.##进行格式化:1,234,567.7
下一次: 第二十二讲 SringBuffer的使用