java之DecimalFormat用法

1. 在实践中,有时会遇到数字格式化的需求,比如订单号的某一段必须为4位,不足的用0占位,或者输出需要带上百分号,单位,货币符号等,Java的DecimalFormat能和好的支持。

2. 实例化DecimalFormat后,并给实例对象设置格式的pattern字符串(两种方式)。

DecimalFormat  myFormat = new DecimalFormat(String pattern);  // 带格式参数,实例化格式化器
DecimalFormat  myFormat = new DecimalFormat();  //  不带格式参数,实例化格式化器
myFormat.applyPattern(String pattern);  //  为格式化器设置格式参数

3. 调用DecimalFormat对象的format()方法进行格式化操作,返回字符串。

String out= myFormat.Format(double value);  //  格式化数字

4. pattern格式化表达式说明:

0 :如果该位存在数字则输出该数字,如果不存在则输出0;
# :如果该位存在数字则输出该数字,不存在不做任何输出;
. :小数分隔符;
- :负号;
,:分组分隔符;
E :科学计数法中分隔位数和指数;
% :放置在数字的前缀或后缀,将数字乘以100,以百分数输出;
\u2030:放置在数字的前缀或后缀,将数字乘以1000,以千分数输出;
\u00A4: 放置在数字的前缀或后缀,作为货币记号;
' : 本符号为单引号,当上述特殊符号出现在数字中时,应为特殊符号添加单引号,系统会将该特殊符号当做普通符号处理;

5. 格式化举例

public static void fun(String pattern, double value) {
     // DecimalFormat formater = new DecimalFormat(pattern);
     DecimalFormat formater = new DecimalFormat(pattern);
     formater .applyPattern(pattern);
     System.err.println(formater .format(value));
}
public static void main (String []args) {
   fun("#,###.###", 123456.789);  //123,456.789
   fun("00000000.000kg", 123456.789);  //00123456.789kg
   fun("000000.000", 123.78);  // 000123.780
   fun("#.#%", 0.789);  // 78.9%
   fun("#.##", 123456.789);  //  123456.79
   fun("#.00\u2030", 0.789);  //  789.00‰
   fun("#\u00A4", 1234);  //  1234¥
}

6. DecimalFormat还提供对数字以逗号分段功能:

DecimalFormat myFormat = new DecimalFormat();
myFormat.setGroupingSize(3); //用逗号进行分段时,每个分段的大小,此处为3;
myFormat.setGroupingUsed(false/true); //当为false时上述设置的分组大小无效,为true时才能进行分组;

7. 分段举例:

public static void fun0(double value) {
    DecimalFormat myFormat = new DecimalFormat();
    myFormat.setGroupingSize(3);  //设置分段间距为3
    System.err.println(myFormat.format(value));
}
public static void fun1(double value)  {
    DecimalFormat myFormat = new DecimalFormat();
    myFormat.setGroupingSize(3);  //设置分段间距为3
    myFormat.setGroupingUsed(false);  //不分段
    System.err.println(myFormat.format(value));
}
public static void main (String []args) {
    fun0(123456.789);  //123,456.789
    fun1(123456.789);  //123456.789
}

原文地址:https://www.cnblogs.com/JaxYoun/p/12460711.html

时间: 2024-07-30 21:02:08

java之DecimalFormat用法的相关文章

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 用法

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

【转载】Java DecimalFormat 用法

转载只供个人学习参考,以下查看请前往原出处:http://blog.csdn.net/wangchangshuai0010/article/details/8577982 我们经常要将数字进行格式化,比如取2位小数,这是最常见的.Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子.下面是一个例子: importjava.text.DecimalFormat; publicclassTestNumberFormat{ publicstaticvoidmain

Java DecimalFormat 用法(数字格式化)

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

java中 DecimalFormat类

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

JAVA的continue用法

JAVA的continue用法: public class test{ public static void main(String [] args){  for(int i=0;i<=10;i++){   if(i%2!=0){    continue;      }   System.out.println(i);    } }} 其实很简单,continue就是中断本次循环开始下一次. 结合这段代码就是.当i是奇数时,不打印,直接结束循环,开始下一次. 还一个例子: //测试continu

汉诺塔(-) java modPow 的用法;

汉诺塔(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵 天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔.不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金 片:一次只移动一片,不管在哪根针上,小片必须在大片上面.僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消