Java之数字格式化

这个还是比较重要的,主要是在解决实际问题上!
没有使用格式化的数据规则

  • 看绝对值范围~0.001~10000000(一千万)之间的数据,按常规方式显示
  • 若区间在0.001~10000000的数据则实用科学计数法,什么是科学计数法呢?
    这个时候有一位救世主出现了,那就是DecimalFormat类,下面是她的继承关系!
Class DecimalFormat

java.lang.Object
java.text.Format
java.text.NumberFormat
java.text.DecimalFormat

模板字符

字符 代表意义
0 一位阿拉伯字母,不存在补O
# 一位阿拉伯字母,存在则显示,不存在则不显示
. 小数点或者是货币的小数分割符
- 负号
分组分割符
E 用于科学计数法的指数和尾数之间
% 百分数
\u2030 千分数
\u00A4 货币符号
让特殊符号不特殊

代码测试Format()
有两种调用方法,都需要两个参数一个是格式,一个是数据。
方法一

import java.text.DecimalFormat;

public class Decimal {
//  数字格式化
    public static void main(String[] args) {
        String pattern = "00.00";
        float number =  1.23f;
        DecimalFormat decimalFormat = new DecimalFormat(pattern);
        System.out.println(decimalFormat.format(number));
    }
}

输出结果:01.23


方法二
使用applyPattern(pattern)

import java.text.DecimalFormat;

public class Decimal {
//  数字格式化
    public static void main(String[] args) {
        String pattern = "00.00";
        float number =  1.23f;
        DecimalFormat decimalFormat = new DecimalFormat();
        decimalFormat.applyPattern(pattern);
        System.out.println(decimalFormat.format(number));
    }
}

输出结果:01.23


接下来做几个测试样例,增加应用能力!

模式 数据 结果 说明
00.00 1.23 01.23 自动补0
00.00 1.234 01.23 删除了一位
00.00 512.34 512.34 没有动
00.00Kg 1.23 01.23Kg 增加了单位
##.## 1.23 1.23 没有动
000.00% 0.23 023.00% 加了%并且*100补了0
000.00\u2030 0.23 230.00‰ 千分号
000.00\u00A4 0.23 000.00\u00A4 货币符号

代码测试setGroup
1. setGroupingUsed(boolean value); 是否支持分组
2. setGroupingSize(int value); 数字分组大小

        double number = 12345678.9;
        DecimalFormat decimalFormat = new DecimalFormat();
        decimalFormat.setGroupingUsed(true);
        decimalFormat.setGroupingSize(3);
        System.out.println(decimalFormat.format(number));

输出结果:12,345,678.9


猜你喜欢

转载自blog.csdn.net/qq_27865227/article/details/75120467