public abstract class NumberFormat extends Format
NumberFormat
是抽象基类的所有数字格式。这个类提供了格式化和解析数字的接口。
NumberFormat
还提供了确定的场所数字格式的方法,和他们的名字。
NumberFormat
帮助你格式化和解析数字的任何区域。您的代码可以完全独立于对小数点的区域设置惯例,成千上万的分隔符,甚至是使用的特定的十进制数字,或者数字格式是否是十进制的。
要为当前区域设置一个数字,使用工厂类方法之一:
如果格式化多个号码,它是更有效的得到格式和使用多次,系统不需要获取信息对当地语言和国家公约多次。为不同区域的格式myString = NumberFormat.getInstance().format(myNumber);
数量,指定在调用NumberFormat nf = NumberFormat.getInstance(); for (int i = 0; i < myNumber.length; ++i) { output.println(nf.format(myNumber[i]) + "; "); }
getInstance
。
你也可以使用NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);
NumberFormat
解析数字:
使用myNumber = nf.parse(myString);
getInstance
或
getNumberInstance
得到正常的数字格式。使用
getIntegerInstance
得到整数格式。使用
getCurrencyInstance
获得货币的数字格式。使用
getPercentInstance
为显示百分比得到格式。用这种格式,一个像0.53的分数显示为53%。
你也可以用这种方法控制setMinimumFractionDigits
数字显示。如果你想要更多的控制在格式或分析,或要给你的用户更多的控制,你可以尝试铸造你从工厂方法的一DecimalFormat
NumberFormat
。这对于绝大多数工作场所;只记得把它放在一个try
块如果你遇到一个不寻常的人。
解析和十进格式是这样设计的,一些控制工作和其他工作的格式解析。以下是对每一个这些控制方法的详细描述,
setparseintegeronly:只影响分析,如果真的,“3456.78”→3456(叶解析位置后指数6)如果是错的,“3456.78”→3456.78(叶解析位置后指数8)这是独立的格式。如果你想不显示小数点,小数点后有无数字,使用setdecimalseparatoralwaysshown。
setdecimalseparatoralwaysshown:只影响格式,才有可能在小数点后没有数字,如有图案像“#,# # 0。# #”,例如,如果是真的,3456→“3456”。如果是错的,3456→”3456“这是独立的解析。如果你想解析在小数点停止,使用setparseintegeronly。
你也可以用ParsePosition
和FieldPosition
的parse
和format
方法的形式来让你:
FieldPosition
,与field
= INTEGER_FIELD
。在输出时,getEndIndex
将设置为整数的最后一个字符的十进制之间的偏移量。添加(desiredspacecount - getendindex)在字符串前面的空间。getEndIndex
字符串。然后将笔(desiredpixelwidth - widthtoalignmentpoint)在绘制文本。它也工作在没有十进制,但可能在最后的附加字符,例如,在负数的括号:“(12)”为- 12。数字格式一般不同步。建议为每个线程创建单独的格式实例。如果多个线程同时访问一个格式,则必须在外部同步。
DecimalFormat
,
ChoiceFormat
,
Serialized Form
Modifier and Type | Class and Description |
---|---|
static class |
NumberFormat.Field
定义常数,作为在
AttributedCharacterIterator 属性的钥匙从
NumberFormat.formatToCharacterIterator 作为
FieldPosition 字段标识符返回。
|
Modifier and Type | Field and Description |
---|---|
static int |
FRACTION_FIELD
场常数用来构建一个力场排斥的对象。
|
static int |
INTEGER_FIELD
场常数用来构建一个力场排斥的对象。
|
Modifier | Constructor and Description |
---|---|
protected |
NumberFormat()
唯一的构造函数。
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
覆盖可复制。
|
boolean |
equals(Object obj)
重写equals。
|
String |
format(double number)
格式专业化。
|
abstract StringBuffer |
format(double number, StringBuffer toAppendTo, FieldPosition pos)
格式专业化。
|
String |
format(long number)
格式专业化。
|
abstract StringBuffer |
format(long number, StringBuffer toAppendTo, FieldPosition pos)
格式专业化。
|
StringBuffer |
format(Object number, StringBuffer toAppendTo, FieldPosition pos)
格式的数量和将产生的文本的字符串缓冲区。
|
static Locale[] |
getAvailableLocales()
返回一个数组的所有地方,这个班的
get*Instance 方法可以返回局部实例。
|
Currency |
getCurrency()
获取格式化货币值时此数字格式所使用的货币。
|
static NumberFormat |
getCurrencyInstance()
返回当前默认
FORMAT 区域设置货币格式。
|
static NumberFormat |
getCurrencyInstance(Locale inLocale)
返回指定区域的货币格式。
|
static NumberFormat |
getInstance()
返回当前默认
FORMAT 现场通用的数字格式。
|
static NumberFormat |
getInstance(Locale inLocale)
返回指定区域的通用数字格式。
|
static NumberFormat |
getIntegerInstance()
返回当前默认
FORMAT 现场整数格式。
|
static NumberFormat |
getIntegerInstance(Locale inLocale)
返回指定区域设置的整数数格式。
|
int |
getMaximumFractionDigits()
返回数字的小数部分中允许的数字的最大数。
|
int |
getMaximumIntegerDigits()
返回数字的整数部分中允许的数字的最大数。
|
int |
getMinimumFractionDigits()
返回数字的小数部分中允许的最小数字。
|
int |
getMinimumIntegerDigits()
返回数字的整数部分中允许的最小数字。
|
static NumberFormat |
getNumberInstance()
返回当前默认
FORMAT 现场通用的数字格式。
|
static NumberFormat |
getNumberInstance(Locale inLocale)
返回指定区域的通用数字格式。
|
static NumberFormat |
getPercentInstance()
返回当前默认
FORMAT 现场的百分比格式。
|
static NumberFormat |
getPercentInstance(Locale inLocale)
返回指定区域设置的百分比格式。
|
RoundingMode |
getRoundingMode()
获取用于解析的
RoundingMode 。
|
int |
hashCode()
重写hashCode。
|
boolean |
isGroupingUsed()
如果使用此格式使用分组,则返回真。
|
boolean |
isParseIntegerOnly()
如果此格式将解析数仅为整数,则返回真。
|
Number |
parse(String source)
解析文本从给定的字符串产生一个数字的开始。
|
abstract Number |
parse(String source, ParsePosition parsePosition)
返回一个长如果可能的话(例如,范围内的[ long.min_value,长。max_value ]并没有小数点),否则一双。
|
Object |
parseObject(String source, ParsePosition pos)
解析文本字符串以产生
Number 。
|
void |
setCurrency(Currency currency)
设置格式化货币值时此数字格式所使用的货币。
|
void |
setGroupingUsed(boolean newValue)
设置是否将使用此格式。
|
void |
setMaximumFractionDigits(int newValue)
设置数字的小数部分中允许的最大数字。
|
void |
setMaximumIntegerDigits(int newValue)
设置整数部分中允许的数字的最大数量。
|
void |
setMinimumFractionDigits(int newValue)
设置一个数字的小数部分中允许的最小数字。
|
void |
setMinimumIntegerDigits(int newValue)
设置在数字的整数部分中允许的最小数字。
|
void |
setParseIntegerOnly(boolean value)
设置是否数字应该被解析为整数。
|
void |
setRoundingMode(RoundingMode roundingMode)
集在这的
RoundingMode 解析。
|
format, formatToCharacterIterator, parseObject
public static final int INTEGER_FIELD
public static final int FRACTION_FIELD
public StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
Number
。
这个实现提取次数的值使用Number.longValue()
所有整数类型的值可转换为long
而不丢失信息,包括与bit length
BigInteger
值小于64,和所有其他类型Number.doubleValue()
。然后调用format(long,java.lang.StringBuffer,java.text.FieldPosition)
或format(double,java.lang.StringBuffer,java.text.FieldPosition)
。这可能导致损失的幅度信息和精度BigInteger
和BigDecimal
值。
format
方法重写,继承类
Format
number
的数字格式
toAppendTo
-
StringBuffer
,格式化的文本要附加
pos
-输入:校准领域,如果需要的话。输出:对准场的偏移量。
toAppendTo
价值
IllegalArgumentException
-如果
number
是无效的或不
Number
实例。
NullPointerException
-如果
toAppendTo
或
pos
是空的
ArithmeticException
如果取整舍入模式被设置为roundingmode.unnecessary需要
FieldPosition
public final Object parseObject(String source, ParsePosition pos)
Number
。
解析文本开始了pos
索引的方法尝试。如果分析成功,那么pos
索引更新索引的最后一个字符后(解析不一定使用所有字符到字符串的末尾),和解析数返回。更新pos
可以用来指示下一个调用这个方法的出发点。如果出现错误,那么pos
指标没有发生变化,对pos
误差指标设置为错误发生位置的字符的索引,并返回null。
看到更多的信息parse(String, ParsePosition)
数量分析方法。
parseObject
方法重写,继承类
Format
source
-
String
,其中一部分会被解析。
pos
-一个指标和误差指标上述信息,
ParsePosition
对象。
Number
解析字符串。在错误的情况下,返回空。
NullPointerException
-如果
pos
是空的。
public final String format(double number)
number
-双号码格式
ArithmeticException
如果取整舍入模式被设置为roundingmode.unnecessary需要
Format.format(java.lang.Object)
public final String format(long number)
number
-长的数字格式
ArithmeticException
如果取整舍入模式被设置为roundingmode.unnecessary需要
Format.format(java.lang.Object)
public abstract StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos)
number
-双号码格式
toAppendTo
的StringBuffer的格式化的文本要附加
pos
-场上位置
ArithmeticException
如果取整舍入模式被设置为roundingmode.unnecessary需要
Format.format(java.lang.Object)
public abstract StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos)
number
-长的数字格式
toAppendTo
的StringBuffer的格式化的文本要附加
pos
-场上位置
ArithmeticException
如果取整舍入模式被设置为roundingmode.unnecessary需要
Format.format(java.lang.Object)
public abstract Number parse(String source, ParsePosition parsePosition)
source
-解析字符串
parsePosition
-解析位置
isParseIntegerOnly()
,
Format.parseObject(java.lang.String, java.text.ParsePosition)
public Number parse(String source) throws ParseException
看到更多的信息parse(String, ParsePosition)
数量分析方法。
source
-
String
始应解析。
Number
解析字符串。
ParseException
-如果不能指定字符串的开始被解析。
public boolean isParseIntegerOnly()
true
如果号码必须解析为整数
false
否则只;
public void setParseIntegerOnly(boolean value)
value
-
true
如果号码必须解析为整数
false
否则只;
isParseIntegerOnly()
public static final NumberFormat getInstance()
FORMAT
现场通用的数字格式。这是叫
getNumberInstance()
相同。
NumberFormat
实例的通用数字格式
public static NumberFormat getInstance(Locale inLocale)
getNumberInstance(inLocale)
相同。
inLocale
-所需的现场
NumberFormat
实例的通用数字格式
public static final NumberFormat getNumberInstance()
FORMAT
现场通用的数字格式。
这相当于调用getNumberInstance(Locale.getDefault(Locale.Category.FORMAT))
。
NumberFormat
实例的通用数字格式
Locale.getDefault(java.util.Locale.Category)
,
Locale.Category.FORMAT
public static NumberFormat getNumberInstance(Locale inLocale)
inLocale
-所需的现场
NumberFormat
实例的通用数字格式
public static final NumberFormat getIntegerInstance()
FORMAT
现场整数格式。返回的数字格式配置为圆形浮点数到最近的整数用一半甚至舍入(见
RoundingMode.HALF_EVEN
)的格式,并解析只有一个输入字符串的整数部分(见
isParseIntegerOnly
)。
这相当于调用getIntegerInstance(Locale.getDefault(Locale.Category.FORMAT))
。
getRoundingMode()
,
Locale.getDefault(java.util.Locale.Category)
,
Locale.Category.FORMAT
public static NumberFormat getIntegerInstance(Locale inLocale)
RoundingMode.HALF_EVEN
)的格式,并解析只有一个输入字符串的整数部分(见
isParseIntegerOnly
)。
inLocale
-所需的现场
getRoundingMode()
public static final NumberFormat getCurrencyInstance()
FORMAT
区域设置货币格式。
这相当于调用getCurrencyInstance(Locale.getDefault(Locale.Category.FORMAT))
。
NumberFormat
实例
Locale.getDefault(java.util.Locale.Category)
,
Locale.Category.FORMAT
public static NumberFormat getCurrencyInstance(Locale inLocale)
inLocale
-所需的现场
NumberFormat
实例
public static final NumberFormat getPercentInstance()
FORMAT
现场的百分比格式。
这相当于调用getPercentInstance(Locale.getDefault(Locale.Category.FORMAT))
。
NumberFormat
实例
Locale.getDefault(java.util.Locale.Category)
,
Locale.Category.FORMAT
public static NumberFormat getPercentInstance(Locale inLocale)
inLocale
-所需的现场
NumberFormat
实例
public static Locale[] getAvailableLocales()
get*Instance
方法可以返回局部实例。返回的数组是由java运行时支持的地区联盟,通过安装
NumberFormatProvider
实现。它必须包含至少一个
Locale
实例等于
Locale.US
。
NumberFormat
实例可用数组。
public int hashCode()
hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
equals
方法重写,继承类
Object
obj
-参考对象的比较。
true
obj参数相同;
false
否则。
Object.hashCode()
,
HashMap
public boolean isGroupingUsed()
true
如果分组使用;
false
否则
setGroupingUsed(boolean)
public void setGroupingUsed(boolean newValue)
newValue
-
true
如果分组使用;
false
否则
isGroupingUsed()
public int getMaximumIntegerDigits()
setMaximumIntegerDigits(int)
public void setMaximumIntegerDigits(int newValue)
newValue
-整数的最大位数被显示;如果小于零,则为零作为。具体的子类可以强制执行该值的上限,该值适用于格式化的数字类型。
getMaximumIntegerDigits()
public int getMinimumIntegerDigits()
setMinimumIntegerDigits(int)
public void setMinimumIntegerDigits(int newValue)
newValue
-整数的最小位数显示;如果小于零,则为零作为。具体的子类可以强制执行该值的上限,该值适用于格式化的数字类型。
getMinimumIntegerDigits()
public int getMaximumFractionDigits()
setMaximumFractionDigits(int)
public void setMaximumFractionDigits(int newValue)
newValue
-分数的最大位数被显示;如果小于零,则为零作为。具体的子类可以强制执行该值的上限,该值适用于格式化的数字类型。
getMaximumFractionDigits()
public int getMinimumFractionDigits()
setMinimumFractionDigits(int)
public void setMinimumFractionDigits(int newValue)
newValue
-分数最小位数显示;如果小于零,则为零作为。具体的子类可以强制执行该值的上限,该值适用于格式化的数字类型。
getMinimumFractionDigits()
public Currency getCurrency()
setCurrency
是空的。
默认实现将UnsupportedOperationException
。
null
UnsupportedOperationException
-如果数字格式的类没有实现货币格式
public void setCurrency(Currency currency)
默认实现将UnsupportedOperationException
。
currency
-被这个数字格式使用新的货币
UnsupportedOperationException
-如果数字格式的类没有实现货币格式
NullPointerException
-如果
currency
是空的
public RoundingMode getRoundingMode()
RoundingMode
。在解析此方法的默认实现
UnsupportedOperationException
总是引发。处理不同的四舍五入模式的子类应重写此方法。
RoundingMode
。
UnsupportedOperationException
-默认的实现总是抛出这个异常
setRoundingMode(RoundingMode)
public void setRoundingMode(RoundingMode roundingMode)
RoundingMode
解析。在解析此方法的默认实现
UnsupportedOperationException
总是引发。处理不同的四舍五入模式的子类应重写此方法。
roundingMode
-
RoundingMode
用于
UnsupportedOperationException
-默认的实现总是抛出这个异常
NullPointerException
-如果
roundingMode
是空的
getRoundingMode()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.