跳转至

java DecimalFormat类

1. 介绍

  数字的格式在解决实际问题时使用非常普遍,这时可以使用 DedmalFormat 类对结果进行格式化处理。例如,将小数位统一成 2 位,不足 2 位的以 0 补齐。

DecimalFormatNumberFormat 的一个子类,用于格式化十进制数字。DecimalFormat类包含一个模式和一组符号,常用符号的说明如表 1 所示。  

符号 说明
0 显示数字,如果位数不够则补 0
# 显示数字,如果位数不够不发生变化
. 小数分隔符
- 减号
, 组分隔符
E 分隔科学记数法中的尾数和小数
% 前缀或后缀,乘以 100 后作为百分比显示
? 乘以 1000 后作为千进制货币符显示。用货币符号代替。如果双写,用国际货币符号代替; 如果出现在一个模式中,用货币十进制分隔符代替十进制分隔符

1.1 例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));
    }
}

执行上述代码,输出结果如下所示:

请输入一个float类型的数字:12.345
0.0 格式:12.3
#.# 格式:12.3
000.000 格式:012.345
###.### 格式:12.345


请输入一个float类型的数字:123.456789
0.0 格式:123.5
#.# 格式:123.5
000.000 格式:123.457
###.### 格式:123.457