import java.text.NumberFormat;
import java.util.Locale;
public class NumberFormat格式化数字 {
/**
* NumberFormat包含了format()和parse()
* 其中format()用于将数值转化成字符串
* parse()用于将字符串解析成数值
*
* getCurrencyInstance():返回默认Locale的货币格式器。也可以在调用该方法的时候传入指定的Locale,则获取指定Locale的货币格式器;
* getIntegerInstance():返回默认Locale的整数格式器。也可以在调用该方法的时候传入指定的Locale,则获取指定Locale的整数格式器;
* getNumberInstance():返回默认Locale的通用数值格式器。也可以在调用该方法的时候传入指定的Locale,则获取指定Locale的通用数值格式器;
* getPercentInstance():返回默认Locale的百分数格式器。也可以在调用该方法的时候传入指定的Locale,则获取指定Locale的百分数格式器。
*/
public static void test() {
//需要被格式化的数字
double db = 1234000.567;
//创建四个Locale,分别代表中国、日本、德国、美国
Locale[] locales = {Locale.CHINA, Locale.JAPAN, Locale.GERMAN, Locale.US};
NumberFormat[] nf = new NumberFormat[12];
//为上面四个Localle创建12个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 ? "----德国的格式----" : "----美国的格式----";
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));
}
}
public static void main(String[] args) {
test();
}
}
NumberFormat格式化数字
最新推荐文章于 2022-12-23 18:20:03 发布