这个还是比较重要的,主要是在解决实际问题上!
没有使用格式化的数据规则
- 看绝对值范围~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