- java.lang.Object
-
- java.text.Format
-
- java.text.NumberFormat
-
- java.text.DecimalFormat
-
- All Implemented Interfaces:
-
Serializable
,Cloneable
public class DecimalFormat extends NumberFormat
DecimalFormat
是格式为十进制数的NumberFormat
的具体子类。 它具有各种功能,旨在使任何地区的数字解析和格式化,包括支持西方,阿拉伯语和印度数字。 它还支持不同类型的数字,包括整数(123),定点数(123.4),科学记数法(1.23E4),百分比(12%)和货币金额(123美元)。 所有这些都可以进行本地化。要获取特定区域设置的
NumberFormat
(包括默认语言环境),请致电NumberFormat
的工厂方法之一,例如getInstance()
。 一般来说,不要直接调用DecimalFormat
构造函数,因为NumberFormat
工厂方法可能会返回DecimalFormat
以外的子类。 如果您需要自定义格式对象,请执行以下操作:NumberFormat f = NumberFormat.getInstance(loc); if (f instanceof DecimalFormat) { ((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true); }
A
DecimalFormat
包括图案和一组符号 。 可以使用applyPattern()
或间接使用API方法直接设置模式。 符号存储在一个DecimalFormatSymbols
对象中。 当使用NumberFormat
工厂方法时,模式和符号从本地化的ResourceBundle
读取。模式
DecimalFormat
模式具有以下语法:Pattern: PositivePattern PositivePattern ; NegativePattern PositivePattern: Prefixopt Number Suffixopt NegativePattern: Prefixopt Number Suffixopt Prefix: any Unicode characters except \uFFFE, \uFFFF, and special characters Suffix: any Unicode characters except \uFFFE, \uFFFF, and special characters Number: Integer Exponentopt Integer . Fraction Exponentopt Integer: MinimumInteger # # Integer # , Integer MinimumInteger: 0 0 MinimumInteger 0 , MinimumInteger Fraction: MinimumFractionopt OptionalFractionopt MinimumFraction: 0 MinimumFractionopt OptionalFraction: # OptionalFractionopt Exponent: E MinimumExponent MinimumExponent: 0 MinimumExponentopt
A
DecimalFormat
模式包含正和负子模式,例如"#,##0.00;(#,##0.00)"
。 每个子模式都有一个前缀,数字部分和后缀。 负子模式是可选的; 如果不存在,则使用以局部减号('-'
在大多数语言环境中)前缀的正子模式作为负子模式。 也就是说,"0.00"
独自相当于"0.00;-0.00"
。 如果存在显式的负子模式,则仅用于指定负前缀和后缀; 位数,最小数字和其他特征与正图案完全相同。 这意味着"#,##0.0#;(#)"
产生与"#,##0.0#;(#,##0.0#)"
完全相同的行为。用于无穷大,数字,数千个分隔符,十进制分隔符等的前缀,后缀和各种符号可以设置为任意值,并且在格式化期间它们将正确显示。 但是,必须注意符号和字符串不冲突,否则解析将不可靠。 例如,对于
DecimalFormat.parse()
,正负号前缀或后缀必须是不同的,以便能够区分正值和负值。 (如果它们相同,那么DecimalFormat
将表现为没有指定负子模式。)另一个例子是,小数分隔符和千位分隔符应该是不同的字符,否则解析将是不可能的。分组分隔符通常用于数千个,但在一些国家,它分隔成万。 分组大小是分组字符之间的常数数字,例如3个为100,000,000或4为1,0000,0000。 如果您提供具有多个分组字符的模式,则最后一个和整数结束之间的间隔是使用的模式。 所以
"#,##,###,####"
=="######,####"
=="##,####,####"
。特殊图案字符
一个模式中的许多人物都是字面上的; 在格式化期间,它们在解析期间匹配,输出不变。 另一方面,特殊字符代表其他字符,字符串或字符类。 除非另有说明,否则必须引用它们,如果它们以字面值的形式出现在前缀或后缀中。
这里列出的字符用于非本地化模式。 本地化模式使用从该格式化程序的
DecimalFormatSymbols
对象中取得的相应字符,而这些字符将失去其特殊状态。 货币符号和报价两个例外都不是本地化的。Symbol Location Localized? Meaning 0
Number Yes Digit #
Number Yes Digit, zero shows as absent .
Number Yes Decimal separator or monetary decimal separator -
Number Yes Minus sign ,
Number Yes Grouping separator E
Number Yes Separates mantissa and exponent in scientific notation. Need not be quoted in prefix or suffix. ;
Subpattern boundary Yes Separates positive and negative subpatterns %
Prefix or suffix Yes Multiply by 100 and show as percentage \u2030
Prefix or suffix Yes Multiply by 1000 and show as per mille value ¤
(\u00A4
)Prefix or suffix No Currency sign, replaced by currency symbol. If doubled, replaced by international currency symbol. If present in a pattern, the monetary decimal separator is used instead of the decimal separator. '
Prefix or suffix No Used to quote special characters in a prefix or suffix, for example, "'#'#"
formats 123 to"#123"
. To create a single quote itself, use two in a row:"# o''clock"
.科学计数法
科学符号中的数字表示为尾数和幂的乘积,例如,1234可以表示为1.234×10 ^ 3。 尾数通常在1.0‰x <10.0的范围内,但不一定是。 可以指示
DecimalFormat
格式化和分析科学符号, 只能通过模式 ; 目前没有工厂方法创建科学的符号格式。 在一个模式中,紧随着一个或多个数字字符的指数字符表示科学符号。 示例:"0.###E0"
将号码1234格式化为"1.234E3"
。- 指数字符后的数字字符数给出最小指数数字计数。 没有最大值。 负指数使用局部减号进行格式化, 而不是模式的前缀和后缀。 这允许模式如
"0.###E0 m/s"
。 - 整数数字的最小和最大数字一起解释:
- 如果整数数字的最大数目大于其最小数目并大于1,则强制指数为整数数字的最大数目的倍数,而将最小数字解释为1。最常见的使用这个是生成工程符号 ,其中指数是三的倍数,例如
"##0.#####E0"
。 使用此模式,数字12345格式为"12.345E3"
,而123456格式为"123.456E3"
。 - 否则,通过调整指数来实现最小数字的整数。 示例:0.00123格式化为
"00.###E0"
产生"12.3E-4"
。
- 如果整数数字的最大数目大于其最小数目并大于1,则强制指数为整数数字的最大数目的倍数,而将最小数字解释为1。最常见的使用这个是生成工程符号 ,其中指数是三的倍数,例如
- 尾数中的有效位数是最小整数和最大小数位数之和,不受最大整数数字的影响。 例如,使用
"##0.##E0"
格式化的12345是"12.3E3"
。 要显示所有数字,将有效数字计数设置为零。 有效数字的数量不会影响解析。 - 指数图案可能不包含分组分隔符。
四舍五入
DecimalFormat
提供RoundingMode
中格式化定义的舍入模式。 默认情况下,它使用RoundingMode.HALF_EVEN
。数字
对于格式化,DecimalFormat
使用从DecimalFormatSymbols
对象中定义的本地化零位开始的十个连续字符作为数字。 对于解析,这些数字以及由Character.digit
定义的所有Unicode十进制数字都被识别。特殊价值观
NaN
格式化为字符串,通常具有单个字符\uFFFD
。 该字符串由DecimalFormatSymbols
对象确定。 这是唯一未使用前缀和后缀的值。Infinity格式化为字符串,通常具有单个字符
\u221E
,其中应用了正或负的前缀和后缀。 无穷大字符串由DecimalFormatSymbols
对象确定。负零(
"-0"
)解析-
BigDecimal(0)
如果isParseBigDecimal()
是真的, -
Long(0)
如果isParseBigDecimal()
是假的,并isParseIntegerOnly()
是真的, -
Double(-0.0)
如果两个isParseBigDecimal()
和isParseIntegerOnly()
都是假的。
Synchronization
十进制格式通常不同步。 建议为每个线程创建单独的格式实例。 如果多个线程同时访问格式,则必须在外部进行同步。
例
<strong>// Print out a number using the localized number, integer, currency, // and percent format for each locale</strong> Locale[] locales = NumberFormat.getAvailableLocales(); double myNumber = -1234.56; NumberFormat form; for (int j = 0; j < 4; ++j) { System.out.println("FORMAT"); for (int i = 0; i < locales.length; ++i) { if (locales[i].getCountry().length() == 0) { continue; // Skip language-only locales } System.out.print(locales[i].getDisplayName()); switch (j) { case 0: form = NumberFormat.getInstance(locales[i]); break; case 1: form = NumberFormat.getIntegerInstance(locales[i]); break; case 2: form = NumberFormat.getCurrencyInstance(locales[i]); break; default: form = NumberFormat.getPercentInstance(locales[i]); break; } if (form instanceof DecimalFormat) { System.out.print(": " + ((DecimalFormat) form).toPattern()); } System.out.print(" -> " + form.format(myNumber)); try { System.out.println(" -> " + form.parse(form.format(myNumber))); } catch (ParseException e) {} } }
- 从以下版本开始:
- 1.1
- 另请参见:
-
Java Tutorial ,
NumberFormat
,DecimalFormatSymbols
,ParsePosition
, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class java.text.NumberFormat
NumberFormat.Field
-
-
Field Summary
-
Fields inherited from class java.text.NumberFormat
FRACTION_FIELD, INTEGER_FIELD
-
-
构造方法摘要
构造方法 Constructor 描述 DecimalFormat()
使用缺省模式和符号创建默认的FORMAT
区域设置的DecimalFormat。DecimalFormat(String pattern)
使用给定的模式和默认的FORMAT
区域设置的符号创建一个DecimalFormat。DecimalFormat(String pattern, DecimalFormatSymbols symbols)
使用给定的模式和符号创建一个DecimalFormat。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
applyLocalizedPattern(String pattern)
将给定的模式应用于此Format对象。void
applyPattern(String pattern)
将给定的模式应用于此Format对象。Object
clone()
标准覆盖 语义不变。boolean
equals(Object obj)
覆盖等于StringBuffer
format(double number, StringBuffer result, FieldPosition fieldPosition)
格式化为一个字符串。StringBuffer
format(long number, StringBuffer result, FieldPosition fieldPosition)
格式化一个长的字符串。StringBuffer
format(Object number, StringBuffer toAppendTo, FieldPosition pos)
格式化一个数字,并将生成的文本附加到给定的字符串缓冲区。AttributedCharacterIterator
formatToCharacterIterator(Object obj)
格式化产生一个AttributedCharacterIterator
的对象。Currency
getCurrency()
在格式化货币值时获取此十进制格式使用的货币。DecimalFormatSymbols
getDecimalFormatSymbols()
返回十进制格式符号的副本,通常程序员或用户不会更改它们。int
getGroupingSize()
返回分组大小。int
getMaximumFractionDigits()
获取数字小数部分中允许的最大位数。int
getMaximumIntegerDigits()
获取数字的整数部分允许的最大位数。int
getMinimumFractionDigits()
获取数字小数部分中允许的最小位数。int
getMinimumIntegerDigits()
获取数字整数部分允许的最小位数。int
getMultiplier()
以百分比,每mille和类似格式获取乘数。String
getNegativePrefix()
获取负前缀。String
getNegativeSuffix()
得到负的后缀。String
getPositivePrefix()
获取正面前缀。String
getPositiveSuffix()
获得积极的后缀。RoundingMode
getRoundingMode()
获取此DecimalFormat中使用的RoundingMode
。int
hashCode()
覆盖hashCodeboolean
isDecimalSeparatorAlwaysShown()
允许您使用整数获取小数分隔符的行为。boolean
isParseBigDecimal()
返回parse(java.lang.String, java.text.ParsePosition)
方法是否返回BigDecimal
。Number
parse(String text, ParsePosition pos)
Number
void
setCurrency(Currency currency)
设置格式化货币值时此数字格式使用的货币。void
setDecimalFormatSymbols(DecimalFormatSymbols newSymbols)
设置十进制格式符号,通常程序员或用户不会更改。void
setDecimalSeparatorAlwaysShown(boolean newValue)
允许您使用整数设置小数分隔符的行为。void
setGroupingSize(int newValue)
设置分组大小。void
setGroupingUsed(boolean newValue)
设置是否以此格式使用分组。void
setMaximumFractionDigits(int newValue)
设置数字小数部分允许的最大位数。void
setMaximumIntegerDigits(int newValue)
设置数字的整数部分允许的最大位数。void
setMinimumFractionDigits(int newValue)
设置数字小数部分允许的最小位数。void
setMinimumIntegerDigits(int newValue)
设置数字的整数部分允许的最小位数。void
setMultiplier(int newValue)
设置以百分比,每mille和类似格式使用的乘数。void
setNegativePrefix(String newValue)
设置负前缀。void
setNegativeSuffix(String newValue)
设置负后缀。void
setParseBigDecimal(boolean newValue)
设置parse(java.lang.String, java.text.ParsePosition)
方法是否返回BigDecimal
。void
setPositivePrefix(String newValue)
设置正前缀。void
setPositiveSuffix(String newValue)
设置正后缀。void
setRoundingMode(RoundingMode roundingMode)
设置此DecimalFormat中使用的RoundingMode
。String
toLocalizedPattern()
合成表示此Format对象的当前状态的本地化模式字符串。String
toPattern()
合成表示此Format对象的当前状态的模式字符串。-
Methods inherited from class java.text.Format
format, parseObject
-
Methods inherited from class java.text.NumberFormat
format, format, getAvailableLocales, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, isGroupingUsed, isParseIntegerOnly, parse, parseObject, setParseIntegerOnly
-
-
-
-
构造方法详细信息
-
DecimalFormat
public DecimalFormat()
使用默认模式和默认的FORMAT
区域设置的符号创建一个DecimalFormat。 当国际化不是主要关注点时,这是获取一个十进制格式的方便方法。要获得给定语言环境的标准格式,请使用NumberFormat上的工厂方法,例如getNumberInstance。 这些工厂将为给定的区域设置返回最合适的NumberFormat子类。
-
DecimalFormat
public DecimalFormat(String pattern)
使用给定的模式和默认的FORMAT
语言环境的符号创建一个DecimalFormat。 当国际化不是主要关注点时,这是获取一个十进制格式的方便方法。要获得给定语言环境的标准格式,请使用NumberFormat上的工厂方法,例如getNumberInstance。 这些工厂将为给定的区域设置返回最合适的NumberFormat子类。
- 参数
-
pattern
- 非本地化模式字符串。 - 异常
-
NullPointerException
- 如果pattern
为空 -
IllegalArgumentException
- 如果给定的模式无效。 - 另请参见:
-
NumberFormat.getInstance()
,NumberFormat.getNumberInstance()
,NumberFormat.getCurrencyInstance()
,NumberFormat.getPercentInstance()
-
DecimalFormat
public DecimalFormat(String pattern, DecimalFormatSymbols symbols)
使用给定的模式和符号创建一个DecimalFormat。 当您需要完全自定义格式的行为时,请使用此构造函数。要获取给定语言环境的标准格式,请使用NumberFormat上的工厂方法,例如getInstance或getCurrencyInstance。 如果您只需要对标准格式进行微调,您可以修改NumberFormat工厂方法返回的格式。
- 参数
-
pattern
- 非本地化模式字符串 -
symbols
- 要使用的符号集合 - 异常
-
NullPointerException
- 如果任何给定的参数为空 -
IllegalArgumentException
- 如果给定的模式无效 - 另请参见:
-
NumberFormat.getInstance()
,NumberFormat.getNumberInstance()
,NumberFormat.getCurrencyInstance()
,NumberFormat.getPercentInstance()
,DecimalFormatSymbols
-
-
方法详细信息
-
format
public final StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
- 重写:
-
format
在NumberFormat
- 参数
-
number
- 要格式化的数字 -
toAppendTo
- 要附加格式化文本的StringBuffer
-
pos
- 在输入:一个对齐字段,如果需要。 输出:对齐字段的偏移量。 - 结果
-
该值传递为
toAppendTo
- 异常
-
IllegalArgumentException
- 如果number
为null或不是Number
的实例。 -
NullPointerException
- 如果toAppendTo
或pos
为空 -
ArithmeticException
- 如果舍入模式设置为RoundingMode.UNNECESSARY,则需要舍入 - 另请参见:
-
FieldPosition
-
format
public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
格式化为一个字符串。- Specified by:
-
format
在NumberFormat
- 参数
-
number
- 双格式 -
result
- 要附加文本 -
fieldPosition
- 输入:如果需要,对齐字段。 输出:对齐字段的偏移量。 - 结果
- 格式化的数字字符串
- 异常
-
NullPointerException
- 如果result
或fieldPosition
是null
-
ArithmeticException
- 如果舍入模式设置为RoundingMode.UNNECESSARY,则需要舍入 - 另请参见:
-
FieldPosition
-
format
public StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition)
格式化一个长的字符串。- Specified by:
-
format
在NumberFormat
- 参数
-
number
- 长格式 -
result
- 要附加文本 -
fieldPosition
- 在输入端:一个对齐字段,如果需要的话。 输出:对齐字段的偏移量。 - 结果
- 格式化的数字字符串
- 异常
-
NullPointerException
- 如果result
或fieldPosition
是null
-
ArithmeticException
- 如果舍入方式设置为RoundingMode.UNNECESSARY,则需要舍入 - 另请参见:
-
FieldPosition
-
formatToCharacterIterator
public AttributedCharacterIterator formatToCharacterIterator(Object obj)
格式化一个对象,生成一个AttributedCharacterIterator
。 您可以使用返回的AttributedCharacterIterator
构建生成的字符串,以及确定有关生成的字符串的信息。AttributedCharacterIterator的每个属性键将为类型
NumberFormat.Field
,属性值与属性键相同。- 重写:
-
formatToCharacterIterator
在Format
- 参数
-
obj
- 要格式化的对象 - 结果
- AttributedCharacterIterator描述格式化的值。
- 异常
-
NullPointerException
- 如果obj为空。 -
IllegalArgumentException
- 格式化格式化给定对象时。 -
ArithmeticException
- 如果舍入模式设置为RoundingMode.UNNECESSARY,则需要舍入 - 从以下版本开始:
- 1.4
-
parse
public Number parse(String text, ParsePosition pos)
从字符串中解析文本,生成一个Number
。该方法尝试从
pos
给出的索引开始解析文本。 如果解析成功,那么pos
的索引将在使用最后一个字符后更新为索引(解析不一定使用字符串末尾的所有字符),并返回解析的数字。 更新的pos
可用于指示下一次调用此方法的起始点。 如果发生错误,则指数pos
没有改变,误差指数pos
被设置为发生错误的字符的索引,并返回null。返回的子类取决于
isParseBigDecimal()
的值以及要解析的字符串。- 如果
isParseBigDecimal()
为false(默认值),大多数整数值将返回为Long
对象,无论如何写入:"17"
和"17.000"
都解析为Long(17)
。 不能适应Long
的值返回为Double
s。 这包括具有小数部分,无限值,NaN
和值-0.0的值。DecimalFormat
没有决定是否返回Double
或者Long
基于小数点分隔符的源字符串中的存在。 这样做可以防止溢出"-9,223,372,036,854,775,808.00"
尾数的整数(如"-9,223,372,036,854,775,808.00"
)被准确解析。呼叫者可以使用
Number
方法doubleValue
,longValue
,等等,以获得他们想要的类型。 - 如果
isParseBigDecimal()
为true,则返回BigDecimal
对象。 这些值由BigDecimal(String)
构成,用于与区域设置无关的格式的相应字符串。 特殊情况为负,正无穷大和NaN返回为Double
实例,保持对应的Double
常数值。
DecimalFormat
解析代表十进制数字的所有Unicode字符,由Character.digit()
定义。 此外,DecimalFormat
还可以识别为以DecimalFormatSymbols
对象中定义的本地化零位开始的十个连续字符的数字。- Specified by:
-
parse
在类NumberFormat
- 参数
-
text
- 要解析的字符串 -
pos
- 具有ParsePosition
索引和错误索引信息的ParsePosition
对象。 - 结果
-
解析的值,或
null
如果解析失败 - 异常
-
NullPointerException
- 如果text
或pos
为空。 - 另请参见:
-
NumberFormat.isParseIntegerOnly()
,Format.parseObject(java.lang.String, java.text.ParsePosition)
- 如果
-
getDecimalFormatSymbols
public DecimalFormatSymbols getDecimalFormatSymbols()
返回十进制格式符号的副本,通常程序员或用户不会更改它们。- 结果
- 所需的DecimalFormatSymbols的副本
- 另请参见:
-
DecimalFormatSymbols
-
setDecimalFormatSymbols
public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols)
设置十进制格式符号,通常程序员或用户不会更改。- 参数
-
newSymbols
- 所需的DecimalFormatSymbols - 另请参见:
-
DecimalFormatSymbols
-
getPositivePrefix
public String getPositivePrefix()
获取正面前缀。示例:+123,$ 123,sFr123
- 结果
- 正面前缀
-
setPositivePrefix
public void setPositivePrefix(String newValue)
设置正前缀。示例:+123,$ 123,sFr123
- 参数
-
newValue
- 新的正面前缀
-
getNegativePrefix
public String getNegativePrefix()
获取负前缀。示例:-123,($ 123)(带负号后缀),sFr-123
- 结果
- 负前缀
-
setNegativePrefix
public void setNegativePrefix(String newValue)
设置负前缀。示例:-123,($ 123)(带负号后缀),sFr-123
- 参数
-
newValue
- 新的负面前缀
-
getPositiveSuffix
public String getPositiveSuffix()
获得积极的后缀。示例:123%
- 结果
- 正后缀
-
setPositiveSuffix
public void setPositiveSuffix(String newValue)
设置正后缀。示例:123%
- 参数
-
newValue
- 新的正后缀
-
getNegativeSuffix
public String getNegativeSuffix()
得到负的后缀。示例:-123%,($ 123)(带正后缀)
- 结果
- 负后缀
-
setNegativeSuffix
public void setNegativeSuffix(String newValue)
设置负后缀。示例:123%
- 参数
-
newValue
- 新的负后缀
-
getMultiplier
public int getMultiplier()
以百分比,每mille和类似格式获取乘数。- 结果
- 乘数
- 另请参见:
-
setMultiplier(int)
-
setMultiplier
public void setMultiplier(int newValue)
设置以百分比,每mille和类似格式使用的乘数。 对于百分比格式,将乘数设置为100,后缀为'%'(对于阿拉伯语,使用阿拉伯数字符号)。 对于每格式,将乘数设置为1000,后缀为'\ u2030'。示例:乘法器100,1.23被格式化为“123”,“123”被解析为1.23。
- 参数
-
newValue
- 新的乘数 - 另请参见:
-
getMultiplier()
-
setGroupingUsed
public void setGroupingUsed(boolean newValue)
设置是否以此格式使用分组。- 重写:
-
setGroupingUsed
在类NumberFormat
- 参数
-
newValue
-true
如果使用分组;false
否则 - 另请参见:
-
NumberFormat.isGroupingUsed()
-
getGroupingSize
public int getGroupingSize()
返回分组大小。 分组大小是数字整数部分中分组分隔符之间的位数。 例如,在号码“123,456.78”中,分组大小为3。
-
setGroupingSize
public void setGroupingSize(int newValue)
设置分组大小。 分组大小是数字整数部分中分组分隔符之间的位数。 例如,在号码“123,456.78”中,分组大小为3。
传入的值被转换为一个字节,这可能会丢失信息。- 参数
-
newValue
- 新的分组大小 - 另请参见:
-
getGroupingSize()
,NumberFormat.setGroupingUsed(boolean)
,DecimalFormatSymbols.setGroupingSeparator(char)
-
isDecimalSeparatorAlwaysShown
public boolean isDecimalSeparatorAlwaysShown()
允许您使用整数获取小数分隔符的行为。 (小数分隔符将始终显示为小数。)示例:十进制ON:12345â'12345。 OFF:12345†'12345
- 结果
-
如果总是显示小数分隔符,则为
true
; 否则为false
-
setDecimalSeparatorAlwaysShown
public void setDecimalSeparatorAlwaysShown(boolean newValue)
允许您使用整数设置小数分隔符的行为。 (小数分隔符将始终显示为小数。)示例:十进制ON:12345â'12345。 OFF:12345†'12345
- 参数
-
newValue
-true
如果始终显示小数分隔符;false
否则
-
isParseBigDecimal
public boolean isParseBigDecimal()
返回parse(java.lang.String, java.text.ParsePosition)
方法是否返回BigDecimal
。 默认值为false。- 结果
-
true
如果解析方法返回BigDecimal; 否则为false
- 从以下版本开始:
- 1.5
- 另请参见:
-
setParseBigDecimal(boolean)
-
setParseBigDecimal
public void setParseBigDecimal(boolean newValue)
设置parse(java.lang.String, java.text.ParsePosition)
方法是否返回BigDecimal
。- 参数
-
newValue
-true
如果解析方法返回BigDecimal; 否则为false
- 从以下版本开始:
- 1.5
- 另请参见:
-
isParseBigDecimal()
-
clone
public Object clone()
标准覆盖 语义不变。- 重写:
-
clone
在NumberFormat
- 结果
- 这个实例的一个克隆。
- 另请参见:
-
Cloneable
-
equals
public boolean equals(Object obj)
覆盖等于- 重写:
-
equals
在NumberFormat
- 参数
-
obj
- 与之比较的参考对象。 - 结果
-
true
如果该对象与obj参数相同; 否则为false
。 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
覆盖hashCode- 重写:
-
hashCode
在NumberFormat
- 结果
- 该对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toPattern
public String toPattern()
合成表示此Format对象的当前状态的模式字符串。- 结果
- 一个模式字符串
- 另请参见:
-
applyPattern(java.lang.String)
-
toLocalizedPattern
public String toLocalizedPattern()
合成表示此Format对象的当前状态的本地化模式字符串。- 结果
- 本地化模式字符串
- 另请参见:
-
applyPattern(java.lang.String)
-
applyPattern
public void applyPattern(String pattern)
将给定的模式应用于此Format对象。 模式是各种格式化属性的简短说明。 这些属性也可以通过各种设置方法单独更改。这个例程设置的整数数字没有限制,因为这是典型的最终用户期望; 如果要设置实际值,请使用setMaximumInteger。 对于负数,使用第二个模式,用分号分隔
示例
"#,#00.0#"
这意味着至少2个整数数字,1个分数,最多2个小数位数。
示例:
"#,#00.0#;(#,#00.0#)"
用于括号中的负数。在负模式中,忽略最小和最大计数; 这些被假定设置为正模式。
- 参数
-
pattern
- 一个新的模式 - 异常
-
NullPointerException
- 如果pattern
为空 -
IllegalArgumentException
- 如果给定的模式无效。
-
applyLocalizedPattern
public void applyLocalizedPattern(String pattern)
将给定的模式应用于此Format对象。 该模式被假定为局部符号。 模式是各种格式化属性的简短说明。 这些属性也可以通过各种设置方法单独更改。这个例程设置的整数数字没有限制,因为这是典型的最终用户期望; 如果要设置实际值,请使用setMaximumInteger。 对于负数,使用第二个模式,用分号分隔
示例
"#,#00.0#"
'1,234.56这意味着至少2个整数数字,1个分数,最多2个小数位数。
示例:
"#,#00.0#;(#,#00.0#)"
用于括号中的否定。在负模式中,忽略最小和最大计数; 这些被假定设置为正模式。
- 参数
-
pattern
- 一种新的模式 - 异常
-
NullPointerException
- 如果pattern
为空 -
IllegalArgumentException
- 如果给定的模式无效。
-
setMaximumIntegerDigits
public void setMaximumIntegerDigits(int newValue)
设置数字的整数部分允许的最大位数。 对于BigInteger
和BigDecimal
对象之外的格式化数字,使用newValue
和309的较低者。 负输入值被替换为0。- 重写:
-
setMaximumIntegerDigits
在NumberFormat
- 参数
-
newValue
- 要显示的最大整数位数; 如果小于零,则使用零。 具体的子类可能会强制适用于正在格式化的数字类型的此值的上限。 - 另请参见:
-
NumberFormat.setMaximumIntegerDigits(int)
-
setMinimumIntegerDigits
public void setMinimumIntegerDigits(int newValue)
设置数字的整数部分允许的最小位数。 对于BigInteger
和BigDecimal
对象以外的格式化数字,使用newValue
和309的较低者。 负输入值被替换为0。- 重写:
-
setMinimumIntegerDigits
在NumberFormat
- 参数
-
newValue
- 要显示的最小整数位数; 如果小于零,则使用零。 具体的子类可能会强制适用于正在格式化的数字类型的此值的上限。 - 另请参见:
-
NumberFormat.setMinimumIntegerDigits(int)
-
setMaximumFractionDigits
public void setMaximumFractionDigits(int newValue)
设置数字小数部分允许的最大位数。 对于BigInteger
和BigDecimal
对象之外的格式化数字,使用newValue
和340的较低者。 负输入值被替换为0。- 重写:
-
setMaximumFractionDigits
在NumberFormat
- 参数
-
newValue
- 要显示的最小数字数字; 如果小于零,则使用零。 具体的子类可能会强制适用于正在格式化的数字类型的此值的上限。 - 另请参见:
-
NumberFormat.setMaximumFractionDigits(int)
-
setMinimumFractionDigits
public void setMinimumFractionDigits(int newValue)
设置数字小数部分允许的最小位数。 对于BigInteger
和BigDecimal
对象之外的格式化数字,使用newValue
和340的较低者。 负输入值被替换为0。- 重写:
-
setMinimumFractionDigits
在NumberFormat
- 参数
-
newValue
- 要显示的最小数字数字; 如果小于零,则使用零。 具体的子类可能会强制适用于正在格式化的数字类型的此值的上限。 - 另请参见:
-
NumberFormat.setMinimumFractionDigits(int)
-
getMaximumIntegerDigits
public int getMaximumIntegerDigits()
获取数字的整数部分允许的最大位数。 对于BigInteger
和BigDecimal
对象之外的格式化数字,使用返回值的下限和309。- 重写:
-
getMaximumIntegerDigits
在NumberFormat
- 结果
- 最大位数
- 另请参见:
-
setMaximumIntegerDigits(int)
-
getMinimumIntegerDigits
public int getMinimumIntegerDigits()
获取数字整数部分允许的最小位数。 对于BigInteger
和BigDecimal
对象之外的格式化数字,使用返回值和309的较低者。- 重写:
-
getMinimumIntegerDigits
在NumberFormat
- 结果
- 最小位数
- 另请参见:
-
setMinimumIntegerDigits(int)
-
getMaximumFractionDigits
public int getMaximumFractionDigits()
获取数字小数部分中允许的最大位数。 对于BigInteger
和BigDecimal
对象之外的格式化数字,使用返回值和340的较低者。- 重写:
-
getMaximumFractionDigits
在NumberFormat
- 结果
- 最大位数。
- 另请参见:
-
setMaximumFractionDigits(int)
-
getMinimumFractionDigits
public int getMinimumFractionDigits()
获取数字小数部分中允许的最小位数。 对于BigInteger
和BigDecimal
对象之外的格式化数字,使用返回值和340的较低者。- 重写:
-
getMinimumFractionDigits
在NumberFormat
- 结果
- 最小位数
- 另请参见:
-
setMinimumFractionDigits(int)
-
getCurrency
public Currency getCurrency()
在格式化货币值时获取此十进制格式使用的货币。 货币是通过调用DecimalFormatSymbols.getCurrency
这个数字格式的符号获得的。- 重写:
-
getCurrency
在NumberFormat
- 结果
-
该十进制格式使用的货币,或
null
- 从以下版本开始:
- 1.4
-
setCurrency
public void setCurrency(Currency currency)
- 重写:
-
setCurrency
在NumberFormat
- 参数
-
currency
- 这种十进制格式使用的新货币 - 异常
-
NullPointerException
- 如果currency
为空 - 从以下版本开始:
- 1.4
-
getRoundingMode
public RoundingMode getRoundingMode()
获取此DecimalFormat中使用的RoundingMode
。- 重写:
-
getRoundingMode
在NumberFormat
- 结果
-
RoundingMode
用于此DecimalFormat。 - 从以下版本开始:
- 1.6
- 另请参见:
-
setRoundingMode(RoundingMode)
-
setRoundingMode
public void setRoundingMode(RoundingMode roundingMode)
设置此DecimalFormat中使用的RoundingMode
。- 重写:
-
setRoundingMode
在NumberFormat
- 参数
-
roundingMode
- 要使用的RoundingMode
- 异常
-
NullPointerException
- 如果roundingMode
为空。 - 从以下版本开始:
- 1.6
- 另请参见:
-
getRoundingMode()
-
-