数字的格式在解决实际问题时使用非常普遍,这时可以使用DedmalFormat类对结果进行格式化处理。例如,将小数位统一成2位,不足2位的以0补齐。
DecimalFormat是NumberFormat的一个子类,用于格式化十进制数字。DecimalFormat类包含一个模式和一组符号,常用符号的说明如表1所示。
表1 DecimalFormat支持的特殊字符
符号 说明 0 显示数字,如果位数不够则补 0 # 显示数字,如果位数不够不发生变化 . 小数分隔符 – 减号 , 组分隔符 E 分隔科学记数法中的尾数和小数 % 前缀或后缀,乘以 100 后作为百分比显示 ? 乘以 1000 后作为千进制货币符显示。用货币符号代替。如果双写,用国际货币符号代替;如果出现在一个模式中,用货币十进制分隔符代替十进制分隔符 例1
下面编写一个Java程序,演示如何使用DecimalFormat类将数字转换成各种格式,实现代码如下。
import java.text.DecimalFormat;import java.util.Scanner;public class Test08 { public static void main(String[] args) { // 实例化DecimalFormat类的对象,并指定格式 DecimalFormat df1 = new DecimalFormat("0.0"); DecimalFormat df2 = new DecimalFormat("#.#"); DecimalFormat df3 = new DecimalFormat("000.000"); DecimalFormat df4 = new DecimalFormat("###.###"); Scanner scan = new Scanner(System.in); System.out.print("请输入一个float类型的数字:"); float f = scan.nextFloat(); // 对输入的数字应用格式,并输出结果 System.out.println("0.0 格式:" + df1.format(f)); System.out.println("#.# 格式:" + df2.format(f)); System.out.println("000.000 格式:" + df3.format(f)); System.out.println("###.### 格式:" + df4.format(f)); }}12345678910111213141516171819复制代码类型:[java]
执行上述代码,输出结果如下所示:
请输入一个float类型的数字:5487.456970.0 格式:5487.5#.# 格式:5487.5000.000 格式:5487.457###.### 格式:5487.45712345复制代码类型:[java]
请输入一个float类型的数字:5.00.0 格式:5.0#.# 格式:5000.000 格式:005.000###.### 格式:5