Java NumberFormat类(数值格式的抽象基类。)

将数字格式化为货币字符串(NumberFormat抽象类)

数字可以标识货币、百分比、积分、电话号码等等,就货币而言,在不同的国家会以不同的格式来定义
使用 getInstance 或 getNumberInstance 来获取常规数值格式。使用 getIntegerInstance 来获取整数数值格式。使用 getCurrencyInstance 来获取货币数值格式。使用 getPercentInstance 来获取显示百分比的格式。使用此格式,小数 0.53 将显示为 53%。(详细可查阅API的java.text.NumberFormat类)

数字格式化是本实例的关键点,实例中应用NumberFormat类实现了数字格式刷,这个类是一个抽象类,不能被实例化,但是可以通过其静态方法获取内部实现类的实例对象,本实例获取了货币格式的格式化对象。使用的方法声明如下:

获取货币格式对象:
public static NumberFormat getCurrencyInstance(Locale inLocale)
该方法用于获取NumberFormat类的货币格式对象。
参数说明:
inLocale:指定语言环境

执行格式化:
public final String format(double number)
该方法是格式化对象中的方法,用于执行针对数字的格式化操作,就本实例使用的货币格式化对象来说,这个方法执行的是把数字格式化为货币字符串。
参数说明:
number:要被格式化的数字。

import java.text.NumberFormat;
import java.util.Locale;
import java.util.Scanner;
public class FormatNumber {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);// 创建标注输入流扫描器
System.out.println(“请输入一个数字:”);
double number = scan.nextDouble();// 获取用户输入数字
System.out.println(“该数字用Locale类的以下常量作为格式化对象的构造参数,将获得不同的货币格式:”);
// 创建格式化对象
NumberFormat format = NumberFormat.getCurrencyInstance(Locale.CHINA);
// 输出格式化货币格式
System.out.println(“Locale.CHINA:” + format.format(number));
format = NumberFormat.getCurrencyInstance(Locale.US);
System.out.println(“Locale.US:” + format.format(number));
format = NumberFormat.getCurrencyInstance(Locale.ENGLISH);
System.out.println(“Locale.ENGLISH:” + format.format(number));
format = NumberFormat.getCurrencyInstance(Locale.TAIWAN);
System.out.println(“Locale.TAIWAN:” + format.format(number));
}

格式化对象可以指定语言环境,在Java中使用Local类的对象来表示,在该类中包含了各种语言环境。通过它可以获取国际化的字符串信息,例如货币、日期时间等等。
(其它类型格式化,如:日期/时间格式化,请参考API的java.text包下的类,如(DateFormat类)日期/时间格式化子类的抽象类)

发布了10 篇原创文章 · 获赞 2 · 访问量 144

猜你喜欢

转载自blog.csdn.net/qq_42188457/article/details/99632324