- NumberFormat简介
NumberFormat 是所有数值格式的抽象基类。此类提供格式化和解析数值的接口。
可用于格式化和解析任何语言环境的数值。使代码能够完全独立于小数点、千位分隔符甚至所用特定小数位数的语言环境约定,并与数值格式是否为偶小数无关。
使用 getInstance 或 getNumberInstance 来获取常规数值格式。
使用 getIntegerInstance 来获取整数数值格式。
使用 getCurrencyInstance 来获取货币数值格式。
使用 getPercentInstance 来获取显示百分比的格式。使用此格式,小数 0.53 将显示为 53%。
使用 setMinimumFractionDigits 之类的方法还可以控制数值的显示。
如果想对格式化和解析进行更多的控制(或者给予用户更多的控制),可以尝试将从工厂方法获取的 NumberFormat 强制转换为 DecimalFormat。这适用于大多数语言环境;只是要记住将其放入一个 try 代码块中,以防遇到特殊情况。 - getInstance
getNumberInstance的结果一致
package com.text;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.util.Locale;
public class NumberFormatTest {
public static void main(String[] args) throws ParseException {
// 千分位格式化
NumberFormat numberFormat = NumberFormat.getInstance(Locale.getDefault());
System.out.println(numberFormat.format(Integer.valueOf(12345)));
System.out.println(numberFormat.format(Long.valueOf(-34567L)));
System.out.println(numberFormat.format(Float.valueOf(12345.5234f)));
System.out.println(numberFormat.format(Double.valueOf(-12345.4235)));
}
}
输出结果:
12,345
-34,567
12,345.523
-12,345.424
- getIntegerInstance
只保留整数部分
package common.number;
import java.math.RoundingMode;
import java.text.NumberFormat;
public class SaveInteger {
public static void main(String[] args) {
// 保留整型的实例
NumberFormat integerInstance = NumberFormat.getIntegerInstance();
// 设置保留的整数位数
integerInstance.setMaximumIntegerDigits(2);
// 设置实例以四舍五入的方式截取整数部分
// RoundingMode是一个枚举类,内部有多种数据保留策略
integerInstance.setRoundingMode(RoundingMode.HALF_UP);
System.out.print(integerInstance.format(1));
System.out.print("\t"+integerInstance.format(123));
System.out.print("\t"+integerInstance.format(12));
System.out.print("\t"+integerInstance.format(12.34));
System.out.print("\t"+integerInstance.format(12.5));
System.out.print("\t"+integerInstance.format(-12.5));
System.out.print("\t"+integerInstance.format(-12.3));
}
}
打印结果:
1
23
12
12
13
-13
-12
- getCurrencyInstance
package com.text;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.util.Locale;
public class NumberFormatTest {
public static void main(String[] args) throws ParseException {
// 千分位格式化金钱
NumberFormat numberFormat = NumberFormat.getCurrencyInstance(Locale.getDefault());
System.out.println(numberFormat.format(Integer.valueOf(12345)));
System.out.println(numberFormat.format(Long.valueOf(34567L)));
System.out.println(numberFormat.format(Double.valueOf(12345.4567)));
}
}
输出结果:
¥12,345.00
¥34,567.00
¥12,345.46
- getPercentInstance
package common.number;
import java.text.NumberFormat;
import java.text.ParseException;
public class PercentNumber {
public static void main(String[] args) throws ParseException {
// 百分比格式化实例
NumberFormat percentInstance = NumberFormat.getPercentInstance();
// 保留小数点后几位
percentInstance.setMaximumFractionDigits(2);
System.out.println(percentInstance.format(1));
System.out.println(percentInstance.format(1.2));
System.out.println(percentInstance.format(.1));
System.out.println(percentInstance.format(0.12));
System.out.println(percentInstance.format(-0.12345));
System.out.println(percentInstance.format(0.2155));
}
}
输出结果:
100%
120%
10%
12%
-12.35%
21.55%
今天的文章NumberFormat的使用分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12568.html