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的帮助文档。

  • 相关阅读:
    oracle维护表空间和数据文件
    IOS 应用的架构解析
    html5之拖放简单效果
    跟Google学习Android开发-起始篇-与其它应用程序交互(1)
    淘宝服务市场 淘宝订单同步方案
    论文阅读笔记
    页面爬虫(获取其他页面HTML)加载到自己页面
    由href return false 来看阻止默认事件
    Delete it
    Mac上利用Eclipse编译Cocos2d-x
  • 原文地址:https://www.cnblogs.com/wrencai/p/4883724.html
Copyright © 2011-2022 走看看