numberformat java_【Java】java.text.NumberFormat 工具类

NumberFormat 表示数字的格式化类, 即:可以按照本地的风格习惯进行数字的显示。

此类的定义如下:

public abstract class NumberFormat extends Format

bc7fdfc03a181785f939cc7c3cabcadc.gif

MessageFormat 、DateFormat 、NumberFormat 是 Format 三个常用的子类,如果要想进一步完成一个好的国际化程序,则肯定需要同时使用这样三个类完成,根据不同的国家显示贷币的形式。

此类还是在java.text 包中,所以直接导入此包即可。

源码测试import java.text.NumberFormat;

public class Main {

public static void main(String[] args) {

Double myNumber = 23323.3323232323;

Double test = 0.3434;

// getInstance()

// 返回当前缺省语言环境的缺省数值格式。

String myString = NumberFormat.getInstance().format(myNumber);

System.out.println(myString);   // 23,323.332

// getCurrencyInstance()返回当前缺省语言环境的货币格式

myString = NumberFormat.getCurrencyInstance().format(myNumber);

System.out.println(myString);   // ¥23,323.33

// getNumberInstance() 返回当前缺省语言环境的通用数值格式。

myString = NumberFormat.getNumberInstance().format(myNumber);

System.out.println(myString);   // 23,323.332

// getPercentInstance() 返回当前缺省语言环境的百分比格式。

myString = NumberFormat.getPercentInstance().format(test);

System.out.println(myString);   // 34%

// setMaximumFractionDigits(int) 设置数值的小数部分允许的最大位数。

// setMaximumIntegerDigits(int)  设置数值的整数部分允许的最大位数。

// setMinimumFractionDigits(int) 设置数值的小数部分允许的最小位数。

// setMinimumIntegerDigits(int)  设置数值的整数部分允许的最小位数.

NumberFormat format = NumberFormat.getInstance();

format.setMaximumFractionDigits(5);     // 小数部分允许的最大位数

format.setMinimumFractionDigits(3);     // 小数部分允许的最小位数

format.setMaximumIntegerDigits(10);     // 整数部分允许的最大位数

format.setMinimumIntegerDigits(3);      // 整数部分允许的最小位数

System.out.println(format.format(2132323213.23866666666));      // 2,132,323,213.23867

System.out.println(format.format(2132323213.23));               // 2,132,323,213.230

System.out.println(format.format(13123122132323213.23));        // 2,132,323,214.000

System.out.println(format.format(13.23));                       // 013.230

}

}

查询源码即可一目了然如何设置国际化,部分源码如下/**

* Returns a currency format for the current default locale.

*/

public final static NumberFormat getCurrencyInstance() {

return getInstance(Locale.getDefault(Locale.Category.FORMAT), CURRENCYSTYLE);

}

/**

* Returns a currency format for the specified locale.

*/

public static NumberFormat getCurrencyInstance(Locale inLocale) {

return getInstance(inLocale, CURRENCYSTYLE);

}

/**

* Returns a percentage format for the current default locale.

*/

public final static NumberFormat getPercentInstance() {

return getInstance(Locale.getDefault(Locale.Category.FORMAT), PERCENTSTYLE);

}

/**

* Returns a percentage format for the specified locale.

*/

public static NumberFormat getPercentInstance(Locale inLocale) {

return getInstance(inLocale, PERCENTSTYLE);

}

/**

* Returns a scientific format for the current default locale.

*/

/*public*/ final static NumberFormat getScientificInstance() {

return getInstance(Locale.getDefault(Locale.Category.FORMAT), SCIENTIFICSTYLE);

}

/**

* Returns a scientific format for the specified locale.

*/

/*public*/ static NumberFormat getScientificInstance(Locale inLocale) {

return getInstance(inLocale, SCIENTIFICSTYLE);

}

所以,这里可以指定任何一个国家的显示方式,比如美国,德国,中国,写法例如NumberFormat numberFormat = NumberFormat.getCurrencyInstance(Locale.CHINA);

numberFormat.setMinimumFractionDigits(0);

numberFormat.format(price);

除了NumberFormat,还有用的很多的Decimalformat ,Decimalformat是NunberFormat的子类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值