1 NumberFormat类简介
NumberFormat包含了format和parse方法,其中format用于将数值格式化成字符串,parse用于将字符串解析成数值。
2 NumberFormat的常用方法
getCurrencyInstance:返回默认Locale的货币格式器。也可以在调用该方法传入指定Locale,则获取指定Locale的货币格式器。
getIntegerInstance:返回默认Locale的整数格式器。也可以在调用该方法传入指定Locale,则获取指定Locale的整数格式器。
getNumberInstance:返回默认Locale的通用数值格式器。也可以在调用该方法传入指定Locale,则获取指定Locale的通用数值格式器。
getPercentInstance:返回默认Locale的百分数格式器。也可以在调用该方法传入指定Locale,则获取指定Locale的百分数格式器。
3 代码示例
import java.util.*; import java.text.*; public class NumberFormatTest { public static void main(String[] args) { // 需要被格式化的数字 double db = 1234000.567; // 创建四个Locale,分别代表中国、日本、德国、美国、法国 Locale[] locales = {Locale.CHINA, Locale.JAPAN , Locale.GERMAN, Locale.US,Locale.FRANCE}; NumberFormat[] nf = new NumberFormat[15]; // 为上面五个Locale创建15个NumberFormat对象 // 每个Locale分别有通用数值格式器、百分比格式器、货币格式器 for (int i = 0 ; i < locales.length ; i++) { nf[i * 3] = NumberFormat.getNumberInstance(locales[i]); nf[i * 3 + 1] = NumberFormat.getPercentInstance(locales[i]); nf[i * 3 + 2] = NumberFormat.getCurrencyInstance(locales[i]); } for (int i = 0 ; i < locales.length ; i++) { String tip = i == 0 ? "----中国的格式----" : i == 1 ? "----日本的格式----" : i == 2 ? "----德国的格式----" : i == 3 ?"----美国的格式----" : "----法国的格式----"; System.out.println(tip); System.out.println("通用数值格式:" + nf[i * 3].format(db)); System.out.println("百分比数值格式:" + nf[i * 3 + 1].format(db)); System.out.println("货币数值格式:" + nf[i * 3 + 2].format(db)); } } }
4 运行结果
----中国的格式----
通用数值格式:1,234,000.567
百分比数值格式:123,400,057%
货币数值格式:¥1,234,000.57
----日本的格式----
通用数值格式:1,234,000.567
百分比数值格式:123,400,057%
货币数值格式:¥1,234,001
----德国的格式----
通用数值格式:1.234.000,567
百分比数值格式:123.400.057%
货币数值格式:¤ 1.234.000,57
----美国的格式----
通用数值格式:1,234,000.567
百分比数值格式:123,400,057%
货币数值格式:$1,234,000.57
----法国的格式----
通用数值格式:1?234?000,567
百分比数值格式:123?400?057 %
货币数值格式:1?234?000,57