java小数位-DecimalFormat(转)

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

时间: 2024-10-01 04:48:35

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

java中 DecimalFormat类

我们经常要将数字进行格式化,比如取2位小数,这是最常见的.Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子.下面是一个例子: importjava.text.DecimalFormat; publicclassTestNumberFormat{ publicstaticvoidmain(String[]args){ doublepi=3.1415927; //圆周率 //取一位整数 System.out.println(newDecimalFormat(

java之DecimalFormat用法

1. 在实践中,有时会遇到数字格式化的需求,比如订单号的某一段必须为4位,不足的用0占位,或者输出需要带上百分号,单位,货币符号等,Java的DecimalFormat能和好的支持. 2. 实例化DecimalFormat后,并给实例对象设置格式的pattern字符串(两种方式). DecimalFormat myFormat = new DecimalFormat(String pattern); // 带格式参数,实例化格式化器 DecimalFormat myFormat = new De

java基础——DecimalFormat

java提供的DecimalFormat工具类 将数据格式化 double PI=3.1415927; //圆周率 //取一位整数 System.out.println(newDecimalFormat("0").format(PI)); //3 //取一位整数和两位小数 System.out.println(newDecimalFormat("0.00").format(PI)); //3.14 //取两位整数和三位小数,整数不足部分以0填补. System.ou

Java中DecimalFormat用法(转)

DecimalFormat 是一个具体子类,用于格式化十进制数字. DecimalFormat 包含一个模式 和一组符号 符号含义: 0 一个数字 ,与#区别是缺位时可以自动补零 # 一个数字,不包括 0 (0和# 都只有一位时可以代表任意位数,n(n>1)位时代表n位数) . 小数的分隔符的占位符 , 分组分隔符的占位符 ; 分隔格式. - 缺省负数前缀. % 乘以 100 和作为百分比显示 ? 乘以 1000 和作为千进制货币符显示:用货币符号代替:如果双写,用 国际货币符号代替.如果出现在

[转] Java DecimalFormat 用法

我们经常要将数字进行格式化,比如取2位小数,这是最常见的.Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子.下面是一个例子: importjava.text.DecimalFormat; publicclassTestNumberFormat{ publicstaticvoidmain(String[]args){ doublepi=3.1415927; //圆周率 //取一位整数 System.out.println(newDecimalFormat(

(转)Java DecimalFormat 用法(数字格式化)

我们经常要将数字进行格式化,比如取2位小数,这是最常见的.Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子.下面是常用的例子: import java.text.DecimalFormat; public class Test{ public static void main(String[] args){ double pi=3.1415927;//圆周率 //取一位整数 System.out.println(new DecimalFormat("0&

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

格式化包括如下内容: 基本用法 金钱格式: 科学计数法: 百分比计数法: 嵌入文本: package com.sssppp.NumberFormat; import java.text.DecimalFormat; public class DecimalFormatExample { public static void main(String arg[]) { double piD=3.1415926; float piF=3.1415926f; System.out.println("--

java中商业数据计算时用到的类BigDecimal和DecimalFormat

1.引言 借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的.然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合.但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦. 2.BigDecimal简介 BigDecimal 由任意精度的整数非标度值 和32 位的整数标度 (scale) 组成.如果为零或正数

java 每日习题(二) 用decimalFormat格式化输出

import java.text.DecimalFormat; import java.text.NumberFormat; /* * 输出: 02 A 04 A 06 A 08 A 10 A; 12 A 14 A 16 A 18 A 20 A; 22 A 24 A 26 A 28 A 30 A; 32 A 34 A 36 A 38 A 40 A; 42 A 44 A 46 A 48 A 50 A; */ public class outputPattern { public static vo