java.text.DecimalFormat 工具类

查看原文:http://www.ibloger.net/article/50.html

DecimalFormatNumberFormat 类的子类,主要的作用是用来格式化数字使用,当然,在格式化数字的时候要比直接使用NumberFormat 更加方便,因为可以直接指定按用户自定义方式进行格式化操作,与之前讲的SimpleDateFormat类似,如果要想进行自定义格式化操作,则必须指定格式化操作的模板。
这里写图片描述
因为是子类,NumberFormat的很多方法都是可以继承过来直接使用的,比如设置国际化,比如下面设置位数,等等等等

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

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

package com.chinatelecom.web.trade.controller.pay;

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%

发布了301 篇原创文章 · 获赞 443 · 访问量 160万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览