1.今天学习了
- 如果数据绝对值大于0.001并且小于10000000,java将以常规小数形式表示
- 如果数据绝对值小于0.001或者小于10000000,java将以科学计数法表示
由于上述输出格式不能满足解决实际问题的要求,通常将结果格式化为指定形式后输出。在java中可以使用DecimalFormat类进行格式化操作。
DecimalFormat是NumberFormat的子类,用于格式化十进制数字。它可以将一些数字格式化为整形,浮点型,百分数等。通常使用该类可以为要输出的数字加上单位或者控制数字的精度。一般情况下可以在实例化DecimalFormat对象时传递数字格式,也可以通过DecimalFormat类中的applypPattern()方法来实现数字格式化。
下面是DecimalFormat类中特殊字符说明:
0 代表阿拉伯数字,使用特殊字符“0”表示数字的一位阿拉伯数字,如果该位不存在数字,则显示为0。
“#” 代表阿拉伯数字,使用特殊字符“#”表示数字的一位阿拉伯数字,如果该位存在数字,则显示字符;如果该位不存在数字,则不显示。
. 小数分割符或货币分隔符。
- 符号。
,分组分隔符。
E 分割科学计数法中尾数和指数。
% 本符号放置在数字的前缀或后缀,将数字乘以100显示为百分数
u2030 本符号放置在数字的前缀或后缀,将数字乘以1000显示为千分数
u00A4 本符号放置在数字的前缀或后缀,作为货币记号
` 本符号为单引号,当上述特殊字符出现在数字时,应该特殊符号添加单引号,系统会将此符号视为普通符号处理
1.下面以实例说名数字格式化,创建StringFormart类,在类中分别定义Format()和thenFormat()两种方法实现两种格式化数字的方式。
package com.gx.vo;
import java.text.DecimalFormat;
public class StringFormart{
//使用实例化对象时设置格式化模式
static public void Format(String patten,double value){
//实例化DeclmalFormat 对象
DecimalFormat my=new DecimalFormat();
String out=my.format(value);
System.out.println(value+"----"+patten+"----"+out);
}
//使用applyPattern()方法对数字进行格式化
static public void thenFormat(String patten,double value){
//实例化DeclmalFormat 对象
DecimalFormat my=new DecimalFormat();
my.applyPattern(patten);
System.out.println(value+"------"+patten+"------"+my.format(value));
}
public static void main(String[] args) {
Format("###,###.###", 123456.789);
Format(“00000000.###kg”, 123456.789);
//按照格式化模板格式化数字,不存在的位以0显示
Format(“000000.000”, 123.78);
//调用静态thenFormat()方法;
thenFormat("#.###%", 0.789);
//将小数点后格式化为两位
thenFormat("###.##", 123456.789);
//将数字转化为千分数形式
thenFormat(“0.00u2030”, 0.789);
}
}