Java中的 NumberFormat 类
NumberFormat是所有数字格式的抽象基类。这个类提供了格式化和解析数字的接口。 NumberFormat 还提供了用于确定哪些区域(美国、印度、意大利等)具有数字格式及其名称的方法。 NumberFormat 可帮助您格式化和解析任何语言环境的数字。
示例:假设我们有一个 double 类型的数字。但是这种双类型数字在不同的国家以不同的方式表示。要根据各个国家/地区表示一个数字,我们必须借助 NumberFormat 类,例如:
double d = 123456.789;
For India, it is represented like 1,23,456.789
For US, it is represented like 123,456.789
For ITALY, it is represented like 123.456,789
关于 NumberFormat 类的一些要点:
- NumberFormat 类存在于Java.text 包中,它是一个抽象类。
- NumberFormat 类实现 Serializable、Cloneable。
- NumberFormat 是 Format 类的直接子类。
- 数字格式通常不同步。建议为每个线程创建单独的格式实例。如果多个线程同时访问一个格式,它必须在外部同步。
NumberFormat 类中存在的方法
S. No. | Method | Description |
---|---|---|
1. | public static NumberFormat getInstance() | To get the NumberFormat object for default Locale. |
2. | public static NumberFormat getCurrencyInstance() | To get the NumberFormat object for default Locale to represent in specific Currency. |
3. | public static NumberFormat getPercentInstance() | The function accepts a single mandatory parameter inLocale which describes the locale which is to be specified. |
4. | public static NumberFormat getInstance(Locale l) | To get the NumberFormat object for the specified Locale object. |
5. | public static format(long l) | To convert java number to locale object. |
例子:
Java
// Java Program to illustrate NumberFormat class use
import java.text.*;
import java.util.*;
class NumberFormatDemo {
public static void main(String[] args)
{
double d = 123456.789;
NumberFormat nf
= NumberFormat.getInstance(Locale.ITALY);
System.out.println("ITALY representation of " + d
+ " : " + nf.format(d));
}
}
输出
ITALY representation of 123456.789 : 123.456,789