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

java格式化数字DecimalFormat

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

关键技术剖析:

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

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

v 调用DecimalFormat的format实例方法,参数为待格式化的数字,该方法使用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.00\u2030";//203405.61‰

df.applyPattern(pattern);

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

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

pattern = "0.00\u00A4";//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的帮助文档。

java小数位-DecimalFormat(转)的更多相关文章

  1. Java中 DecimalFormat 用法详解

    我们经常要将数字进行格式化,比如取2位小数,这是最常见的.Java 提供DecimalFormat类,帮你用最快的速度将数字格式化为你需要的样子.下面是一个例子: import java.text.D ...

  2. java, double转String, 去掉0结尾的小数位

    小问题:double值的小数位是0时,转String会有“.0”结尾.比如,double值是“12”,转String得到的字符串是“12.0”.如果需要去掉0结尾的小数位,应当如何解决呢? 解决方案: ...

  3. JAVA中保留指定小数位方法

    import java.math.BigDecimal;    import java.text.DecimalFormat;    import java.text.NumberFormat;    ...

  4. 【Java数据格式化】使用DecimalFormat 对Float和double进行格式化

    格式化包括如下内容: 基本用法 金钱格式: 科学计数法: 百分比计数法: 嵌入文本: package com.sssppp.NumberFormat; import java.text.Decimal ...

  5. java DecimalFormat

    public class Test{ public static void main(String[] args) throws Exception{ /*DecimalFormat参数,如果是0则会 ...

  6. Java—NumberFormat与DecimalFormat类

    1.NumberFormat表示数字的格式化类 NumberFormat表示数字的格式化类,即:可以按照本地的风格习惯进行数字的显示. No. 方法 类型 描述 1 public static Loc ...

  7. Java DecimalFormat 格式化数字

    我们经常要将数字进行格式化,比如取2位小数,这是最常见的.Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子.下面是一个例子: importjava.text. ...

  8. 【转】Java保留固定小数位的4种方法

    package com.test; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.Numb ...

  9. Java DecimalFormat 用法

    Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子.下面是一个例子: importjava.text.DecimalFormat; publicclassTes ...

随机推荐

  1. ffplay的快捷键以及选项 FFmpeg 基本用法 FFmpeg常用基本命令 ffmpeg常用转换命令,支持WAV转AMR

    ffmpeg -i 32_mkv_h264_718x480_ac3.mkv  -codec copy -bsf:v h264_mp4toannexb  -f mpegts xx.ts ./ffmpeg ...

  2. 解决树莓派新内核无法使用18B20和没有声音的问题

    现在新版的树莓派内核由于为了兼容树莓派2和树莓派B+等以前的版本,采用了和原来不同的内核运行方式,使用了设备树的方式,更加灵活.但是由于可能不习惯这样的方式以及没太多相关这方面的介绍,导致很多用户更新 ...

  3. 【Linux】配置JAVA_HOME环境变量

    1. 永久修改,对所有用户有效 # vi /etc/profile //按键盘[Shift + g], 在profile文件最后添加下面的内容: export JAVA_HOME = /home/my ...

  4. Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别

    utf8_unicode_ci和utf8_general_ci对中.英文来说没有实质的差别.utf8_general_ci 校对速度快,但准确度稍差.utf8_unicode_ci 准确度高,但校对速 ...

  5. mysql中如何统计某字段里某个字符的个数

    select * from order where length(order_num)-length(replace(order_num,'8','')) = 4

  6. jquery easyUi columns日期格式化

    jquery easyUi  columns日期格式化 方法一 Date.prototype.format = function (format) { var o = { "M+" ...

  7. Linux下Tomcat 8080 端口被占用的解决办法

    希望可以帮助你们 一,停止tomcat 并执行#netstat -an|grep 8080   查看发现有许多80端口进程在里面 二,执行# lsof -i :8080|grep -v "P ...

  8. 电子商务(电销)平台中商品模块(Product)数据库设计明细(转载)

    电子商务(电销)平台中商品模块(Product)数据库设计明细 以下是自己在电子商务系统设计中的数据库设计经验总结,而今发表出来一起分享,如有不当,欢迎跟帖讨论~ 商品表 (product)|-- 自 ...

  9. js闭包避免内存泄漏 减少内存使用 避免对象无法回收注意事项

    闭包 如果闭包的作用域中保存着一个 HTML 元素,则该元素无法被销毁.(下面代码来自高程) 闭包是 JavaScript 开发的一个关键方面:匿名函数可以访问父级作用域的变量. function a ...

  10. Hive Group By 常见错误

    Expression not in GROUP BY key ‘ xxx’ 遇到这么一个需求,输入数据为一个ID对应多个name,要求输出数据为ID是唯一的,name随便取一个就可以. 执行以下hiv ...