Java中NumberFormat格式化数字

NumberFormat类是Java提供的一个格式化数字的类,可以将一串数字转化成自己想要的数据格式,也可以将字符串转化成数值。
NumberFormat类包含了两个重要的方法,format()和parse();其中format()方法负责将数字转化成字符串,parse()负责将字符串转化成数字。
NumberFormat是一个抽象基类,所以没办法通过构造方法进行构造,不过NumebrFormat方法提供了几类方法来获取NumberFormat对象:

  • getCompactNumberInstance();返回FORMAT带有"SHORT"格式样式的默认语言环境 的紧凑数字格式 。
  • getCurrencyInstance​(Locale inLocale);返回指定语言环境的货币格式。若是不指定参数,则以默认语言为参数。
  • getInstance​(Locale inLocale);返回指定语言环境的通用数字格式。若是不指定参数,则以默认语言为参数。
  • getPercentInstance​(Locale inLocale);返回指定语言环境的百分比格式。若是不指定参数,则以默认语言为参数。
    上述只是列出了几个常用的方法,还有很多方法请参考API;
    下面示范了NumbaerFormat的用法,具体代码如下:
package learning;

import java.text.NumberFormat;
import java.util.Locale;

public class NumberFormatTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//需要被格式化的数字
		var db = 12345.23499004;
		// 创建四个Locale,分别代表中国,日本,美国,德国
		var locales = new Locale[]{Locale.CHINA, Locale.JAPAN, Locale.US, Locale.GERMAN};
		var nf = new NumberFormat[12];
		// 为上面四个Locale创建十二个NUmberFormat对象
		// 每个Locale分别有通用数值格式器、百分格式器、货币格式器
		for(var i=0; i<4; 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(var i=0; i<locales.length; i++) {
			var tip = i == 0?"___中国格式____":
					i==i?"____日本格式____":
					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));
		}
	}
}

代码执行结果如下:

中国格式_
通用数值格式:12,345.235
百分比数值格式:1,234,523%
货币数值格式:?12,345.23
日本格式
通用数值格式:12,345.235
百分比数值格式:1,234,523%
货币数值格式:¥12,345
德国格式
通用数值格式:12,345.235
百分比数值格式:1,234,523%
货币数值格式:$12,345.23
美国格式
通用数值格式:12.345,235
百分比数值格式:1.234.523?%
货币数值格式:12.345,23?¤

利用NumberFormat类将字符串解析为数值的意义不大,不必过多介绍。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值