zoukankan      html  css  js  c++  java
  • java之DecimalFormat用法

    1. 在实践中,有时会遇到数字格式化的需求,比如订单号的某一段必须为4位,不足的用0占位,或者输出需要带上百分号,单位,货币符号等,Java的DecimalFormat能和好的支持。

    2. 实例化DecimalFormat后,并给实例对象设置格式的pattern字符串(两种方式)。

    DecimalFormat  myFormat = new DecimalFormat(String pattern);  // 带格式参数,实例化格式化器
    
    DecimalFormat  myFormat = new DecimalFormat();  //  不带格式参数,实例化格式化器
    myFormat.applyPattern(String pattern);  //  为格式化器设置格式参数
    

    3. 调用DecimalFormat对象的format()方法进行格式化操作,返回字符串。

    String out= myFormat.Format(double value);  //  格式化数字
    

    4. pattern格式化表达式说明:

    0 :如果该位存在数字则输出该数字,如果不存在则输出0;
    # :如果该位存在数字则输出该数字,不存在不做任何输出;
    . :小数分隔符;
    - :负号;
    ,:分组分隔符;
    E :科学计数法中分隔位数和指数;
    % :放置在数字的前缀或后缀,将数字乘以100,以百分数输出;
    u2030:放置在数字的前缀或后缀,将数字乘以1000,以千分数输出;
    u00A4: 放置在数字的前缀或后缀,作为货币记号;
    ' : 本符号为单引号,当上述特殊符号出现在数字中时,应为特殊符号添加单引号,系统会将该特殊符号当做普通符号处理;
    

    5. 格式化举例

    public static void fun(String pattern, double value) {
         // DecimalFormat formater = new DecimalFormat(pattern);
         DecimalFormat formater = new DecimalFormat(pattern);
         formater .applyPattern(pattern);
         System.err.println(formater .format(value));
    }
    public static void main (String []args) {
       fun("#,###.###", 123456.789);  //123,456.789
       fun("00000000.000kg", 123456.789);  //00123456.789kg
       fun("000000.000", 123.78);  // 000123.780
       fun("#.#%", 0.789);  // 78.9%
       fun("#.##", 123456.789);  //  123456.79
       fun("#.00u2030", 0.789);  //  789.00‰
       fun("#u00A4", 1234);  //  1234¥
    }
    

    6. DecimalFormat还提供对数字以逗号分段功能:

    DecimalFormat myFormat = new DecimalFormat();
    myFormat.setGroupingSize(3); //用逗号进行分段时,每个分段的大小,此处为3;
    myFormat.setGroupingUsed(false/true); //当为false时上述设置的分组大小无效,为true时才能进行分组;

    7. 分段举例:

    public static void fun0(double value) {
        DecimalFormat myFormat = new DecimalFormat();
        myFormat.setGroupingSize(3);  //设置分段间距为3
        System.err.println(myFormat.format(value));
    }
    public static void fun1(double value)  {
        DecimalFormat myFormat = new DecimalFormat();
        myFormat.setGroupingSize(3);  //设置分段间距为3
        myFormat.setGroupingUsed(false);  //不分段
        System.err.println(myFormat.format(value));
    }
    public static void main (String []args) {
        fun0(123456.789);  //123,456.789
        fun1(123456.789);  //123456.789
    }
    
  • 相关阅读:
    分享自Allen 《打开excel,word发送没反映OUTLOOK无法打开》
    AD域只禁用USB存储器而开放其他USB设备
    sql2000安装sp4补丁包教程_sql2000sp4
    为帮助保护您的安全,Internet Explorer已经阻止从此站点下载文件
    IExplore.exe应用程序错误解决方法
    单网卡双IP,同时上内外网
    关于
    七伤拳
    <转>在外企混的,一定要懂“外企潜台词”
    习惯
  • 原文地址:https://www.cnblogs.com/JaxYoun/p/12460711.html
Copyright © 2011-2022 走看看