数字格式化

数字的格式化在解决实际问题时使用很是广泛,好比表示某超市的商品价格须要保留两位有效数字等。Java主要对浮点型数据进行数字格式化操做,其中浮点型数据包括double型和float型数据。java

在Java中使用java.text.DecimalFormat类格式化数字,本节中将着重讲解DecimalFormat类。app

  DecimalFormatspa

  在Java中对没有格式化的数据遵循如下原则。code

  若是数据绝对值大于0.001而且小于10000000,Java将以常规小数形式表示。orm

  若是数据绝对值小于0.001或者大于10000000,使用科学计数法表示。对象

  因为上述输出格式不能知足解决实际问题要求,因此一般将结果格式化指定形式进行输出。在Java中可使用DecimalFormat类进行格式化操做。blog

  DecimalFormat是NumberFormat的一个子类,用于格式化十进制数字,它能够将一些数字格式化为整数、浮点数、科学计数法、百分数等。ip

经过使用该类能够为要输出的数字加上单位或控制数字的精度。通常状况下能够在实例化DecimalFormat对象时传递数字格式,也能够经过DecimalFormat类中的applyPattern()方法来实现数字格式化。ci

  当格式化数字时,在DecimalFormat类中使用一些特殊字符构成一个格式化模板,使数字按照必定特殊字符规则进行匹配。下表中列举了定义格式化模板中的特殊字符及其含义。form

数字的格式化输出

import java.text.DecimalFormat;  
public class DecimalFormatSimpleDemo {  
     //使用实例化对象时设置格式化模式  
static public void SimgleFormat(String pattern,  double value) {       
 DecimalFormat myFormat = new DecimalFormat(pattern);   //实例化DecimalFormat对象  
        String output = myFormat.format(value);                   
    //将数字进行格式化  
      System.out.println(value + "\t" + pattern +  "\t" + output);  
}  

    //使用applyPattern()方法对数字进行格式化  
    static public void UseApplyPatternMethodFormat(String pattern,double value){  
        DecimalFormat myFormat=new DecimalFormat();  //实例化DecimalFormat对象  
        myFormat.applyPattern(pattern);   //调用applyPatten()方法设置格式化模板  
     System.out.println(value + " \t\t" + pattern  + "\t\t" + myFormat.format(value)); 
}  

    public static void main(String[] args) {  
        SimgleFormat("###,###.###", 123456.789);    //调用静态SimgleFormat()方法  
        SimgleFormat("00000000.###kg", 123456.789);  //在数字后加上单位  
        SimgleFormat("000000.000", 123.78);   //按照格式模板格式化数字,不存在的位以0显示  
        //调用静态UseApplyPatternMethodFormat()方法  
        UseApplyPatternMethodFormat("#.###%", 0.789);     //将数字转化为百分数形式  
        UseApplyPatternMethodFormat("###.##", 123456.789); //将小数点后格式化为两位  
        UseApplyPatternMethodFormat("0.00\u2030", 0.789); //将数字转化为千分数形式  
    }  
} 

在Eclipse中运行本实例,运行结果以下图所示。

SimgleFormat()方法是在实例化DecimalFormat对象时为构造方法传参设置数字格式化模板,而UseApplyPatternMethodFormat()方法是在实例化DecimalFormat对象后调用applyPattern()方法设置数字格式化模板。

在DecimalFormat类中除了能够设置格式化模式来格式化数字以外,还可使用一些特殊方法对数字进行格式化设置。例如:

DecimalFormat myFormat=new DecimalFormat();   

//实例化DecimalFormat类对象  

myFormat.setGroupingSize(2);                      

//设置将数字分组的大小  

myFormat.setGroupingUsed(false); //设置是否支持分组 

在上述代码中,setGroupingSize()方法用于设置格式化数字的分组大小,而setGroupingUsed()方法用于设置是否能够对数字进行分组操做。为了使读者更好理解这两个方法的使用,请看下面的实例。

例、 在项目中建立DecimalMethod类,在类的主方法中调用setGroupingSize()与setGrouping- Used()方法实现数字的分组。

import java.text.DecimalFormat;  
public class DecimalMethod {  
    public static void main(String[] args) {  
        DecimalFormat myFormat = new DecimalFormat();  
        myFormat.setGroupingSize(2);    //设置将数字分组为2  
        String output = myFormat.format(123456.789);  
        System.out.println("将数字以每两个数字分组 "+output);  
        myFormat.setGroupingUsed(false); //设置不容许数字进行分组  
        String output2 = myFormat.format(123456.789);  
         System.out.println("不容许数字分组 "+output2);  
    }  
} 

在Eclipse中运行本实例,运行结果以下图所示。

相关文章
相关标签/搜索