Java—NumberFormat与DecimalFormat类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java—NumberFormat与DecimalFormat类相关的知识,希望对你有一定的参考价值。

1.NumberFormat表示数字的格式化类

NumberFormat表示数字的格式化类,即:可以按照本地的风格习惯进行数字的显示。
No. 方法 类型 描述
1 public static Locale[] getAvailableLocales() 普通 返回所有语言环境的数组
2 public static final NumberFormat getInstance() 普通 返回当前默认语言环境的数字格式
3 public static NumberFormat getInstance(Locale inLocale) 普通 返回指定语言环境的数字格式
4 public static final NumberFormat getCurrencyInstance() 普通 返回当前缺省语言环境的通用格式
5 public static NumberFormat getCurrencyInstance(Locale inLocale) 普通 返回指定语言环境的数字格式
private static final NumberFormat CURRENCY =
                         NumberFormat.getCurrencyInstance();
package com.pb.demo1;

import java.text.NumberFormat;



public class NumberFormatTest {

    public static void main(String[] args) {
        NumberFormat nf=NumberFormat.getInstance();
        System.out.println("格式化后显示数字:"+nf.format(10000000));
        System.out.println("格式化后显示数字:"+nf.format(10000.345));
    }

}

 

2.DecimalFormat格式化数字

DecimalFormat也是Format的一个子类,主要的作用是用来格式化数字,当然,在格式化数字的时候要比直接使用NumberFormat更加方便,因为可以直接指定按用户自定义的方式进行格式化操作,与SimpleDateFormat类似,如果要想进行自定义格式化操作,则必须指定格式化操作的模板。

No.
标记
位置
描述
1
0
数字
代表阿拉伯数字,每一个0表示一位阿拉伯数字,如果该位不存在则显示0
2
#
数字
代表阿拉伯数字,每一个#表示一位阿拉伯数字,如果该位不存在则不显示
3
.
数字
小数点分隔符或货币的小数分隔符
4
-
数字
代表负号
5
,
数字
分组分隔符
6
E
数字
分隔科学计数法中的尾数和指数
7
;
子模式边界
分隔正数和负数子模式
8
%
前缀或后缀
数字乘以100并显示为百分数
9
\u2030
前缀或后缀
乘以1000并显示为千分数
10
¤
\u00A4
前缀或后缀
货币记号,由货币号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符。
11
,
前缀或后缀
用于在前缀或或后缀中为特殊字符加引号,例如 "‘#‘#" 将 123 格式化为 "#123"。要创建单引号本身,请连续使用两个单引号:"# o‘‘clock"。

 


package com.pb.demo1;

import java.text.DecimalFormat;

public class FormatDemo {

    public void format(String pattern,double value){
        DecimalFormat df=new DecimalFormat(pattern);
        String str=df.format(value);
        System.out.println("使用" + pattern+ "\t格式化数字"+value+":\t" + str);
    }
    public static void main(String[] args) {
        FormatDemo demo=new FormatDemo();
        demo.format("###,###.###", 111222.34567);
        demo.format("000,000.000", 11222.34567);
        demo.format("###,###.###$", 111222.34567);
        demo.format("000,000.000¥", 11222.34567);
        demo.format("##.###%", 0.345678);        // 使用百分数形式
        demo.format("00.###%", 0.0345678);        // 使用百分数形式
        demo.format("###.###\u2030", 0.345678);    // 使用千分数形式

    }

}

 

 
 
 

以上是关于Java—NumberFormat与DecimalFormat类的主要内容,如果未能解决你的问题,请参考以下文章

Java—NumberFormat与DecimalFormat类

Java 如何将 groupingSize() 与 NumberFormat 一起使用

使用 java.text.NumberFormat 解析日本货币字符串

Java中的右对齐字符串NumberFormat

Java,关于: public static final NumberFormat getPercentInstance()

Java `NumberFormat` 假定数字类型不正确