• 数据格式化


    DecimalFormat,NumberFormat

    在实际工作中,常常需要设定数字的输出格式,如以百分比的形式输出,或者设定小数位数等,现稍微总结如下。 
    主要使用的类:java.text.DecimalFormat 
    1。实例化对象,可以用如下两种方法: 
          DecimalFormat df=(DecimalFormat)NumberFormat.getInstance(); 
          DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance(); 
         因为DecimalFormat继承自NumberFormat。 
    2。设定小数位数 
    系统默认小数位数为3,如: 
        DecimalFormat df=(DecimalFormat)NumberFormat.getInstance(); 
        System.out.println(df.format(12.3456789)); 
    输出:12.346 
    现在可以通过如下方法把小数为设为两位: 
      df.setMaximumFractionDigits(2); 
        System.out.println(df.format(12.3456789)); 
    则输出为:12.35 
    3。将数字转化为百分比输出,有如下两种方法: 
    (1) 
      df.applyPattern("##.##%"); 
        System.out.println(df.format(12.3456789)); 
        System.out.println(df.format(1)); 
        System.out.println(df.format(0.015)); 
    输出分别为:1234.57%    100%      1.5% 
    (2) 
        df.setMaximumFractionDigits(2); 
        System.out.println(df.format(12.3456789*100)+"%"); 
        System.out.println(df.format(1*100)+"%"); 
        System.out.println(df.format(0.015*100)+"%"); 
    输出分别为: 
    1,234.57%     100%     1.5% 
    4。设置分组大小 
         DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance(); 
    df1.setGroupingSize(2); 
        System.out.println(df1.format(123456789)); 
    输出:1,23,45,67,89 
    还可以通过df1.setGroupingUsed(false);来禁用分组设置,如: 
         DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance(); 
        df1.setGroupingSize(2); 
    df1.setGroupingUsed(false); 
        System.out.println(df1.format(123456789)); 
    输出:123456789 
    5。设置小数为必须为2位 
        DecimalFormat df2=(DecimalFormat) DecimalFormat.getInstance(); 
      df2.applyPattern("0.00"); 
        System.out.println(df2.format(1.2)); 
    输出:1.20 

      //定义一个数字格式化对象,格式化模板为".##",即保留2位小数. 
         DecimalFormat a = new DecimalFormat(".##"); 
         String s= a.format(333.335); 
         System.err.println(s); 
         //说明:如果小数点后面不够2位小数,不会补零.参见Rounding小节 
         //--------------------------------------------- 

     //--------------------------------------------- 
         //定义一个数字格式化对象,格式化模板为".##",即保留2位小数. 
         DecimalFormat a = new DecimalFormat(".##"); 
         String s= a.format(333.335); 
         System.err.println(s); 
         //说明:如果小数点后面不够2位小数,不会补零.参见Rounding小节 
         //--------------------------------------------- 

         //----------------------------------------------- 
         //可以在运行时刻用函数applyPattern(String)修改格式模板 
         //保留2位小数,如果小数点后面不够2位小数会补零 
         a.applyPattern(".00"); 
         s = a.format(333.3); 
         System.err.println(s); 
         //------------------------------------------------ 

         //------------------------------------------------ 
         //添加千分号 
         a.applyPattern(".##u2030"); 
         s = a.format(0.78934); 
         System.err.println(s);//添加千位符后,小数会进三位并加上千位符 
         //------------------------------------------------ 

         //------------------------------------------------ 
         //添加百分号 
         a.applyPattern("#.##%"); 
         s = a.format(0.78645); 
         System.err.println(s); 
         //------------------------------------------------ 

        //------------------------------------------------ 
         //添加前、后修饰字符串,记得要用单引号括起来 
         a.applyPattern("'这是我的钱$',###.###'美圆'"); 
         s = a.format(33333443.3333); 
         System.err.println(s); 
         //------------------------------------------------ 

          //------------------------------------------------ 
         //添加货币表示符号(不同的国家,添加的符号不一样 
         a.applyPattern("u00A4"); 
         s = a.format(34); 
         System.err.println(s); 
         //------------------------------------------------ 

         //----------------------------------------------- 
         //定义正负数模板,记得要用分号隔开 
          a.applyPattern("0.0;'@'-#.0"); 
          s = a.format(33); 
          System.err.println(s); 
          s = a.format(-33); 
          System.err.println(s); 
          //----------------------------------------------- 
        
         //综合运用,正负数的不同前后缀 
         String pattern="'my moneny'###,###.##'RMB';'ur money'###,###.##'US'"; 
         a.applyPattern(pattern); 
         System.out.println(a.format(1223233.456));

  • 相关阅读:
    flex设置成1和auto有什么区别
    在SUBLIME TEXT中安装SUBLIMELINTER进行JS&CSS代码校验
    gulp教程之gulp-less
    sublime注释插件与javascript注释规范
    移动端尺寸基础知识
    webpack入门教程
    IO中同步、异步与阻塞、非阻塞的区别
    Node.js的线程和进程
    Cocos2d-x 3.0中 物理碰撞检測中onContactBegin回调函数不响应问题
    hdu 1789 Doing Homework again 贪心
  • 原文地址:https://www.cnblogs.com/chenxuezhouLearnProgram/p/5741339.html
Copyright © 2020-2023  润新知