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.001.2301.23自动补0
00.001.23401.23删除了一位
00.00512.34512.34没有动
00.00Kg1.2301.23Kg增加了单位
##.##1.231.23没有动
000.00%0.23023.00%加了%并且*100补了0
000.00\u20300.23230.00‰千分号
000.00\u00A40.23000.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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值