zoukankan      html  css  js  c++  java
  • java小数位-DecimalFormat(转)

    转载:http://blog.sina.com.cn/s/blog_93daad410101159s.html

    java格式化数字DecimalFormat

       在输出数字时,有时需要给数字配上单位,有时需要数字具有一定的精度,也有时需要用科学计数法表示数字。

    关键技术剖析:

    v java.text.DecimalFormat类专门用于格式化数字。

    v 需要为DecimalFormat提供格式化模式Pattern。通过构造方法或者DecimalFormatapplyPattern方法设置模式。Pattern的类型为字符串。

    v 调用DecimalFormatformat实例方法,参数为待格式化的数字,该方法使用DecimalFormat对象的pattern对参数进行格式化。

    import java.text.DecimalFormat;

    public class TestDecimalFormat {

    public static void main(String[] args) {

    DecimalFormat df = new DecimalFormat();

    double data = 1203.405607809;

    System.out.println("格式化之前:" + data);

    String pattern = "0.0";//1203.4

    df.applyPattern(pattern);

    System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));

    // 可以在模式后加上自己想要的任何字符,比如单位

    pattern = "00000000.000kg";//00001203.406kg

    df.applyPattern(pattern);

    System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));

    //#表示如果存在就显示字符,如果不存在就不显示,只能用在模式的两头

    pattern = "##000.000kg";//1203.406kg

    df.applyPattern(pattern);

    System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));

    //-表示输出为负数,必须放在最前面

    pattern = "-000.000";//-1203.406

    df.applyPattern(pattern);

    System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));

    //,是分组分隔符 :输出结果12,03.41

    pattern = "-0,00.0#";//-12,03.41

    df.applyPattern(pattern);

    System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));

    //E表示输出为指数,”E“之前的字符串是底数的格式,之后的是指数的格式。

    pattern = "0.00E000";//1.20E003

    df.applyPattern(pattern);

    System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));

    //%表示乘以100并显示为百分数,要放在最后

    pattern = "0.00%";//120340.56%

    df.applyPattern(pattern);

    System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));

    //"u2030"表示乘以1000并显示为千分数,要放在最后

    pattern = "0.00u2030";//203405.61‰

    df.applyPattern(pattern);

    System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));

    //"u00A4"货币符号,要放在两端*****1203.41¥

    pattern = "0.00u00A4";//1203.41¥

    df.applyPattern(pattern);

    System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));

    //'用于在前缀或或后缀中为特殊字符加引号,要创建单引号本身,请连续使用两个单引号:"# o''clock"。 

    pattern = "'#'#" ;//#1203

    // pattern = "'#'" ;//#1203

    df.applyPattern(pattern);

    System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));

    pattern = "# o''clock" ;//1203 o'clock

    df.applyPattern(pattern);

    System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));

    //''放在中间或后面单引号就显示在最后,放在最前面单引号就显示在最前

    // pattern = "# o''clock.000" ;//1203.406 o'clock

    // pattern = "# .000o''clock";//1203.406 o'clock

    // pattern = "# .000''";//1203.406 '

    // pattern = "# .''000";//1203.406 '

    pattern = "''# .000";//'1203.406 

    df.applyPattern(pattern);

    System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));

    }

    }

    输出结果为:
    格式化之前:1203.405607809
    采用0.0模式格式化后:1203.4
    采用00000000.000kg模式格式化后:00001203.406kg
    采用##000.000kg模式格式化后:1203.406kg
    采用-000.000模式格式化后:-1203.406
    采用-0,00.0#模式格式化后:-12,03.41
    采用0.00E000模式格式化后:1.20E003
    采用0.00%模式格式化后:120340.56%
    采用0.00‰模式格式化后:1203405.61‰
    采用0.00¤模式格式化后:1203.41¥
    采用'#'#模式格式化后:#1203
    采用# o''clock模式格式化后:1203 o'clock
    采用''# .000模式格式化后:'1203.406

    分析:

    ² 可以在java.text.DecimalForm的构造方法中制定模式(pattern),也可以使用applyPattern方法设置格式模式。

    ² 格式模式有特定的规则,不太的字符代表不同的意思,在使用中需要自己设计格式的模式。常用的模式有:“.”、“-”、“#”、“%”、“u2030”、“,”、“E”、“0”。关于这些模式的具体含义在程序注释中有详细的介绍,也可以参阅JDK的帮助文档。

  • 相关阅读:
    用 Python 带你看各国 GDP 变迁
    Fluent Interface(流式接口)
    probing privatePath如何作用于ASP.NET MVC View
    Word插入htm文件导致文本域动态增加的一个问题
    Visual Studio 2013附加进程调试IE加载的ActiveX Control无效解决方法
    Ubuntu下Chrome运行Silverlight程序
    Windows Phone Bing lock screen doesn't change解决方法
    SPClaimsUtility.AuthenticateFormsUser的证书验证问题
    Web Service Client使用Microsoft WSE 2.0
    Visual Studio 2013安装Update 3启动crash的解决方法
  • 原文地址:https://www.cnblogs.com/wrencai/p/4883724.html
Copyright © 2011-2022 走看看