zoukankan      html  css  js  c++  java
  • Java DecimalFormat的主要功能及使用方法

    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% 
    如果使用具有多个分组字符的模式,则最后一个分隔符和整数结尾之间的间隔才是使用的分组大小。所以 "#,##,###,####" == "######,####" == "##,####,####"。
  • 相关阅读:
    UVALive 7509 Dome and Steles
    HDU 5884 Sort
    Gym 101194H Great Cells
    HDU 5451 Best Solver
    HDU 5883 The Best Path
    HDU 5875 Function
    卡特兰数
    UVa 11729 Commando War 突击战
    UVa 11292 The Dragon of Loowater 勇者斗恶龙
    Spark Scala Flink版本对应关系
  • 原文地址:https://www.cnblogs.com/liyh123/p/6897607.html
Copyright © 2011-2022 走看看