【Java】java.text.DecimalFormat 工具类

DecimalFormat NumberFormat 类的子类,主要的作用是用来格式化数字使用,当然,在格式化数字的时候要比直接使用NumberFormat 更加方便,因为可以直接指定按用户自定义方式进行格式化操作,与之前讲的SimpleDateFormat类似,如果要想进行自定义格式化操作,则必须指定格式化操作的模板。 

因为是子类,NumberFormat的很多方法都是可以继承过来直接使用的,比如设置国际化,比如下面设置位数,等等等等

// setMaximumFractionDigits(int) 设置数值的小数部分允许的最大位数。
// setMaximumIntegerDigits(int)  设置数值的整数部分允许的最大位数。
// setMinimumFractionDigits(int) 设置数值的小数部分允许的最小位数。
// setMinimumIntegerDigits(int)  设置数值的整数部分允许的最小位数.

注意格式化时候,会进行四舍五入规则

import java.text.DecimalFormat;
public class Main {

    /** 此方法专门用于完成数字的格式化显示 **/
    public static void decimalFormat(String pattern,double value){  
        DecimalFormat df = new DecimalFormat(pattern) ;   // 实例化对象,传入格式化模板  
        String str = df.format(value) ;                  // 格式化数字  
        System.out.println("使用 " + pattern + " 格式化数字, " + value + ":" + str) ;  
    }  

    public static void main(String[] args) {
        decimalFormat("###,###.###", 111222.34567);     // 111,222.346 
        decimalFormat("000,000.000", 11222.34567);      // 011,222.346
        decimalFormat("###,###.###¥", 111222.34567);    // 111,222.346¥
        decimalFormat("000,000.000¥", 11222.34567);     // 011,222.346¥
        decimalFormat("##.###%", 0.345678);             // 34.568%
        decimalFormat("00.###%", 0.0345678);            // 03.457%
        decimalFormat("###.###\u2030", 0.345678);       // 345.678‰
        decimalFormat("-###.##", 0.3439);               // -0.34
    }
}

补充:0.00、0.01; 0.00%、0.12%这样的数据,如果按照上面的格式可能会造成数据显示成:.00、.01; .00%、.12%,怎么办呢?只要把格式改成:

DecimalFormat df1 = new DecimalFormat("0.00");    
DecimalFormat df2 = new DecimalFormat("0.00%");
df1.formatI(number);df2.formatI(number);

显示:0.00、0.01; 0.00%、0.12%


赞(52) 打赏
未经允许不得转载:优客志 » JAVA开发
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏