这个还是比较重要的,主要是在解决实际问题上! 没有使用格式化的数据规则
- 看绝对值范围~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自动补000.001.23401.23删除了一位00.00512.34512.34没有动00.00Kg1.2301.23Kg增加了单位##.##1.231.23没有动000.00%0.23023.00%加了%并且*100补了0000.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