精华内容
下载资源
问答
  • DecimalFormat

    千次阅读 2016-04-05 10:17:33
    DecimalFormatDecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。能够做到日常所需的大部分功能。基本功能DecimalFormat里面封装了...DecimalFormat df = (DecimalFormat) DecimalFormat.getIns

    DecimalFormat

    DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。能够做到日常所需的大部分功能。

    基本功能

    DecimalFormat里面封装了一些对数据最基本的操作。包括对数据三位一组的间隔分组,小数位保留多少位,整数位最多现实多少位能。

    DecimalFormat df = (DecimalFormat) DecimalFormat.getInstance();
    
            double d = 123456.5555;
            // 默认保留三位小数,并在整数位的时候三位添加一个间隔符
            System.out.println(df.format(d));
    
            // 最大的小数位数,四舍五入
            df.setMaximumFractionDigits(2);
    
            // 最小的小数位数,不够的添0
            df.setMinimumFractionDigits(2);
            System.out.println(df.format(d));
    
            // 最小的整数位数,位数不够补0
            df.setMinimumIntegerDigits(15);
    
            System.out.println(df.format(d));
    
            // 最大的整数位数,多余的舍去
            df.setMaximumIntegerDigits(1);
    
            System.out.println(df.format(d));
    
            df = (DecimalFormat) DecimalFormat.getInstance();
    
            // 设置整数位每四个一个分组
            df.setGroupingSize(4);
    
            System.out.println(df.format(d));
    
            DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance();
    
            // 设置小数点的分隔符
            dfs.setDecimalSeparator('s');
            // 设置每一分组的分隔符
            dfs.setGroupingSeparator('a');
    
            df.setDecimalFormatSymbols(dfs);
    
            System.out.println(df.format(d));
    
            // 取消分组
            df.setGroupingUsed(false);
            System.out.println(df.format(d));

    结果

    123,456.556
    123,456.56
    000,000,000,123,456.56
    6.56
    12,3456.556
    12a3456s556
    123456s556
    

    扩展功能

    该DecimalFormat 中可以通过#,0,%字符对数字进行特殊的格式化。
    - #表示字符安装#位数进行匹配,如果在最后或者整数的最前有0会被舍去。
    - 0表示强制匹配,如果位数不够,则会强制补0;
    - % 表示将数据转化成百分比数据

            double a = 1.220;
            double b = 11.22;
            double c = 0.22;
    
            DecimalFormat df = (DecimalFormat) DecimalFormat.getInstance();
    
    
            df.applyPattern("00.00%");
            System.out.println(df.format(a));
            System.out.println(df.format(b));
            System.out.println(df.format(c));
    
            df.applyPattern("##.##%");
            System.out.println(df.format(a));
            System.out.println(df.format(b));
            System.out.println(df.format(c));
    
    122.00%
    1122.00%
    22.00%
    122%
    1122%
    22%
    
    展开全文
  • decimalformat

    2017-01-19 17:00:57
    Java中使用DecimalFormat来设置输出小数的位数 (2013-10-16 03:12:42)转载▼ 标签: 设置输出格式 decimalformat pattern 小数格式 it 分类: JAVA java.text.DecimalFormat df=new java.text.DecimalFormat...
    Java中使用DecimalFormat来设置输出小数的位数 (2013-10-16 03:12:42)转载▼
    标签: 设置输出格式 decimalformat pattern 小数格式 it    分类: JAVA
    java.text.DecimalFormat df=new java.text.DecimalFormat(String pattern)
    String s=df.format(235.56664235423453002943082)

    这里DecimalFormat根据pattern来设置输出s的格式。

    df=new DecimalFormat(pattern)
    or
    df.applyPattern(pattern)

    1)pattern=".###"
    小数点后最多三位,如果小数部分为零,则不显示。
    整数部分没有作处理:当小数点前为0时,就会省略0。比如:
    double d=0.22, then s=".22"

    2) pattern="0.00#"
    小数部分最多三位 00+#, 最少两位由两个00确定,如果不够两位,则以0填充
    整数部分出现了0,说明整数部分至少一位,否则用0填充。
    double d=0.2, then s="0.20"


    3)pattern=".##%"   相当于*100 并且保留最多两位小数
    使用百分数,并保留最多两位小数
    double d=0.2, then s="20%"
    double d=0.23455, then s="23.46%"

    or
    pattern=".00%" 保留两位小数
    double d=0.2,then s=20.00%"


    4) pattern=".##\u2030"
    使用千分号0/oo, 相当于*1000
    double d=0.1,then s="100/oo"
    double d=0.234567,then s="234.56/oo"
    or
    pattern=".00\u2030"
    double d=88.22,then s="88220.00/oo"
    double d=0.1f,then s="100.00/oo"


    5)
    pattern="'Money Amount:',###.###'$'"
    用于前缀,数值模式,后缀,使用"拼接”   'Money Amount'   ###.###  '$'
    double d=123.4, then s="Money Amount:123.4$
    double d=12.34532,then s="Money Amount:12.345$

    6)
    pattern="\u00A4" ¥
    展开全文
  • DecimalFormat

    2016-06-15 19:56:01
    ... DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够分析和格式化任意语言环境中的数,包括对西方语...
    http://blog.csdn.net/evangel_z/article/details/7624503
    http://blog.csdn.net/xiaoli_feng/article/details/9196527

    DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够分析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以本地化。
    DecimalFormat 包含一个模式 和一组符号
    符号含义:
    符号 位置 本地化? 含义
    0 数字 是 阿拉伯数字
    # 数字字 是 阿拉伯数字,如果不存在则显示为空
    . 数字 是 小数分隔符或货币小数分隔符
    - 数字 是 减号
    , 数字 是 分组分隔符
    E 数字 是 分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。
    ; 子模式边界 是 分隔正数和负数子模式
    % 前缀或后缀 是 乘以 100 并显示为百分数
    /u2030 前缀或后缀 是 乘以 1000 并显示为千分数
    ¤(/u00A4) 前缀或后缀 否 货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符。
    ' 前缀或后缀 否 用于在前缀或或后缀中为特殊字符加引号,例如 "'#'#" 将 123 格式化为 "#123"。要创建单引号本身,请连续使用两个单引号:"# o''clock"。
    例子:
    [java] view plain copy
    DecimalFormat df1 = new DecimalFormat("0.0");
    DecimalFormat df2 = new DecimalFormat("#.#");
    DecimalFormat df3 = new DecimalFormat("000.000");
    DecimalFormat df4 = new DecimalFormat("###.###");
    System.out.println(df1.format(12.34));
    System.out.println(df2.format(12.34));
    System.out.println(df3.format(12.34));
    System.out.println(df4.format(12.34));
    运行结果:
    12.3
    12.3
    012.340
    12.34
    [java] view plain copy
    DecimalFormat format = new DecimalFormat("###,####.000");
    System.out.println(format.format(111111123456.1227222));

    Locale.setDefault(Locale.US);
    DecimalFormat usFormat = new DecimalFormat("###,###.000");
    System.out.println(usFormat.format(111111123456.1227222));

    DecimalFormat addPattenFormat = new DecimalFormat();
    addPattenFormat.applyPattern("##,###.000");
    System.out.println(addPattenFormat.format(111111123456.1227));

    DecimalFormat zhiFormat = new DecimalFormat();
    zhiFormat.applyPattern("0.000E0000");
    System.out.println(zhiFormat.format(10000));
    System.out.println(zhiFormat.format(12345678.345));

    DecimalFormat percentFormat = new DecimalFormat();
    percentFormat.applyPattern("#0.000%");
    System.out.println(percentFormat.format(0.3052222));
    运行结果 :
    1111,1112,3456.123
    111,111,123,456.123
    111,111,123,456.123
    1.000E0004
    1.235E0007
    30.522%
    如果使用具有多个分组字符的模式,则最后一个分隔符和整数结尾之间的间隔才是使用的分组大小。所以 "#,##,###,####" == "######,####" == "##,####,####"。
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,812
精华内容 2,324
关键字:

decimalformat