- 所有已实现的接口:
Serializable,Cloneable
DecimalFormat 是 NumberFormat 的具体子类,用于格式化十进制数。它具有多种功能,旨在使在任何区域设置中解析和格式化数字成为可能,包括对西方、阿拉伯和印度数字的支持。它还支持不同类型的数字,包括整数 (123)、定点数 (123.4)、科学记数法 (1.23E4)、百分比 (12%) 和货币金额 ($123)。所有这些都可以本地化。
要获取特定locale(包括默认locale)的 NumberFormat,请调用 NumberFormat 的工厂方法之一,例如 getInstance() 。通常,不要直接调用 DecimalFormat 构造函数,因为 NumberFormat 工厂方法可能会返回 DecimalFormat 以外的子类。如果您需要自定义格式对象,请执行以下操作:
NumberFormat f = NumberFormat.getInstance(loc);
if (f instanceof DecimalFormat) {
((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
}
DecimalFormat 包含一个 pattern 和一组 symbols。模式可以直接使用 applyPattern() 设置,或间接使用 API 方法设置。这些符号存储在 DecimalFormatSymbols 对象中。使用 NumberFormat 工厂方法时,模式和符号是从本地化的 ResourceBundle 中读取的。
Pattern
DecimalFormat 模式具有以下语法:
Pattern:
PositivePattern
PositivePattern ; NegativePattern
PositivePattern:
Prefixopt Number Suffixopt
NegativePattern:
Prefixopt Number Suffixopt
Prefix:
any Unicode characters except U+FFFE , U+FFFF , and special characters
Suffix:
any Unicode characters except U+FFFE , U+FFFF , 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
DecimalFormat 模式包含正负子模式,例如 "#,##0.00;(#,##0.00)" 。每个子模式都有一个前缀、数字部分和后缀。否定子模式是可选的;如果不存在,则以减号 ('-' U+002D HYPHEN-MINUS) 为前缀的正子模式用作负子模式。也就是说,单独的 "0.00" 相当于 "0.00;-0.00" 。如果有一个明确的否定子模式,它只用于指定否定前缀和后缀;数字位数、最小数字和其他特征都与正模式相同。这意味着 "#,##0.0#;(#)" 产生与 "#,##0.0#;(#,##0.0#)" 完全相同的行为。
用于无穷大、数字、分组分隔符、小数分隔符等的前缀、后缀和各种符号可以设置为任意值,它们将在格式化期间正确显示。但是要注意符号和字符串不要冲突,否则解析不可靠。例如,正负前缀或后缀必须不同,DecimalFormat.parse() 才能区分正值和负值。 (如果它们相同,那么 DecimalFormat 的行为就好像没有指定负子模式一样。)另一个例子是小数点分隔符和分组分隔符应该是不同的字符,否则将无法解析。
分组分隔符通常用于千位,但在某些国家/地区它分隔万位。分组大小是分组字符之间的常数位数,例如 3 代表 100,000,000 或 4 代表 1,0000,0000。如果您提供具有多个分组字符的模式,则使用最后一个字符和整数末尾之间的间隔。所以 "#,##,###,####" == "######,####" == "##,####,####" 。
特殊图案字符
模式中的许多字符都是按字面意思理解的;它们在解析期间匹配,在格式化期间输出不变。另一方面,特殊字符代表其他字符、字符串或字符类。除非另有说明,否则必须将它们作为文字出现在前缀或后缀中。
此处列出的字符用于非本地化模式。本地化模式改为使用从此格式化程序的 DecimalFormatSymbols 对象中获取的相应字符,并且这些字符失去了它们的特殊状态。两个例外是未本地化的货币符号和引号。
符号 Location 本土化? 意义 0Number 是的 数字 #Number 是的 数字,零表示不存在 .Number 是的 小数点分隔符或货币小数点分隔符 -Number 是的 减号 ,Number 是的 分组分隔符或货币分组分隔符 ENumber 是的 在科学记数法中分隔尾数和指数。 Need not be quoted in prefix or suffix. ;子模式边界 是的 分离正负子模式 %字首或字尾 是的 乘以 100 并显示为百分比 U+2030字首或字尾 是的 乘以 1000 并显示为每千值 ¤ ( U+00A4)字首或字尾 不 货币符号,由货币符号代替。如果加倍,则替换为国际货币符号。如果出现在模式中,则使用货币小数/分组分隔符而不是小数/分组分隔符。 '字首或字尾 不 用于引用前缀或后缀中的特殊字符,例如, "'#'#"格式 123 到"#123"。要自己创建单引号,请连续使用两个:"# o''clock"。
科学计数法
科学计数法中的数字表示为尾数与十的幂的乘积,例如,1234 可以表示为 1.234 x 10^3。尾数通常在 1.0 ≤ x < 10.0 的范围内,但并非必须如此。 DecimalFormat 可以被指示格式化和解析科学记数法 only via a pattern ;目前没有创建科学记数法格式的工厂方法。在模式中,指数字符紧跟一个或多个数字字符表示科学记数法。示例:"0.###E0" 将数字 1234 格式化为 "1.234E3"。
- 指数字符后的数字字符数给出最小指数位数。没有最大值。负指数使用本地化的减号格式化,not 模式的前缀和后缀。这允许诸如
"0.###E0 m/s"之类的模式。 - 最小和最大整数位数一起解释:
- 如果最大整数位数大于它们的最小位数且大于1,则强制指数为最大整数位数的倍数,最小整数位数被解释为1。最常见的使用它是为了生成 engineering notation ,其中指数是三的倍数,例如
"##0.#####E0"。使用此模式,数字 12345 格式为"12.345E3",数字 123456 格式为"123.456E3"。 - 否则,最小整数位数通过调整指数来实现。示例:0.00123 格式化为
"00.###E0"产生"12.3E-4"。
- 如果最大整数位数大于它们的最小位数且大于1,则强制指数为最大整数位数的倍数,最小整数位数被解释为1。最常见的使用它是为了生成 engineering notation ,其中指数是三的倍数,例如
- 尾数有效位数为minimum integer和maximum fraction位数之和,不受最大整数位数影响。例如,用
"##0.##E0"格式化的 12345 是"12.3E3"。要显示所有数字,请将有效数字计数设置为零。有效数字的数量不影响解析。 - 指数模式可能不包含分组分隔符。
四舍五入
DecimalFormat 提供在 RoundingMode 中定义的舍入模式用于格式化。默认情况下,它使用 RoundingMode.HALF_EVEN 。
位数
对于格式化,DecimalFormat 使用以 DecimalFormatSymbols 对象中定义的本地化零数字开头的十个连续字符作为数字。对于解析,这些数字以及 Character.digit 定义的所有 Unicode 十进制数字都被识别。
特殊值
NaN 被格式化为一个字符串,通常只有一个字符 U+FFFD 。此字符串由 DecimalFormatSymbols 对象确定。这是唯一没有使用前缀和后缀的值。
Infinity 被格式化为字符串,通常具有单个字符 U+221E ,并应用正负前缀和后缀。无限字符串由 DecimalFormatSymbols 对象确定。
负零 ("-0") 解析为
BigDecimal(0)如果isParseBigDecimal()为真,Long(0)如果isParseBigDecimal()为假且isParseIntegerOnly()为真,Double(-0.0)如果isParseBigDecimal()和isParseIntegerOnly()都为假。
同步化
十进制格式一般不同步。建议为每个线程创建单独的格式实例。如果多个线程同时访问一个格式,则必须在外部进行同步。
示例
// Print out a number using the localized number, integer, currency, // and percent format for each localeLocale[] 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.text.NumberFormat 中声明的嵌套类/接口
NumberFormat.Field, NumberFormat.Style -
字段摘要
在类 java.text.NumberFormat 中声明的字段
FRACTION_FIELD, INTEGER_FIELD -
构造方法总结
构造方法构造方法描述使用默认FORMATlocale的默认模式和符号创建 DecimalFormat。DecimalFormat(String pattern) 使用给定的模式和默认FORMATlocale的符号创建 DecimalFormat。DecimalFormat(String pattern, DecimalFormatSymbols symbols) 使用给定的模式和符号创建 DecimalFormat。 -
方法总结
修饰符和类型方法描述voidapplyLocalizedPattern(String pattern) 将给定的模式应用于此格式对象。voidapplyPattern(String pattern) 将给定的模式应用于此格式对象。clone()标准重写;语义没有变化。boolean重写等于format(double number, StringBuffer result, FieldPosition fieldPosition) 格式化 double 以生成字符串。format(long number, StringBuffer result, FieldPosition fieldPosition) 格式化 long 以生成字符串。final StringBufferformat(Object number, StringBuffer toAppendTo, FieldPosition pos) 格式化数字并将结果文本附加到给定的字符串缓冲区。格式化生成AttributedCharacterIterator的对象。获取格式化货币值时此十进制格式使用的货币。返回十进制格式符号的副本,程序员或用户通常不会更改它。int返回分组大小。int获取数字的小数部分允许的最大位数。int获取数字的整数部分中允许的最大位数。int获取数字的小数部分允许的最小位数。int获取数字的整数部分中允许的最小位数。int获取以百分比、千分率和类似格式使用的乘数。获取否定前缀。获取负后缀。获取正前缀。获取正后缀。获取在此 DecimalFormat 中使用的RoundingMode。inthashCode()重写哈希码boolean允许您使用整数获取小数点分隔符的行为。boolean返回parse(java.lang.String, java.text.ParsePosition)方法是否返回BigDecimal。parse(String text, ParsePosition pos) 解析字符串中的文本以生成Number。voidsetCurrency(Currency currency) 设置格式化货币值时此数字格式使用的货币。voidsetDecimalFormatSymbols(DecimalFormatSymbols newSymbols) 设置十进制格式符号,程序员或用户一般不更改。voidsetDecimalSeparatorAlwaysShown(boolean newValue) 允许您使用整数设置小数点分隔符的行为。voidsetGroupingSize(int newValue) 设置分组大小。voidsetMaximumFractionDigits(int newValue) 设置数字的小数部分允许的最大位数。voidsetMaximumIntegerDigits(int newValue) 设置数字的整数部分中允许的最大位数。voidsetMinimumFractionDigits(int newValue) 设置数字的小数部分允许的最小位数。voidsetMinimumIntegerDigits(int newValue) 设置数字的整数部分中允许的最小位数。voidsetMultiplier(int newValue) 设置用于百分比、千分率和类似格式的乘数。voidsetNegativePrefix(String newValue) 设置否定前缀。voidsetNegativeSuffix(String newValue) 设置负数后缀。voidsetParseBigDecimal(boolean newValue) 设置parse(java.lang.String, java.text.ParsePosition)方法是否返回BigDecimal。voidsetPositivePrefix(String newValue) 设置正前缀。voidsetPositiveSuffix(String newValue) 设置正后缀。voidsetRoundingMode(RoundingMode roundingMode) 设置在此 DecimalFormat 中使用的RoundingMode。合成表示此 Format 对象当前状态的本地化模式字符串。合成表示此 Format 对象当前状态的模式字符串。在类 java.text.NumberFormat 中声明的方法
format, format, getAvailableLocales, getCompactNumberInstance, getCompactNumberInstance, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, isGroupingUsed, isParseIntegerOnly, parse, parseObject, setGroupingUsed, setParseIntegerOnly在类 java.text.Format 中声明的方法
format, parseObject
-
构造方法详细信息
-
DecimalFormat
public DecimalFormat()使用默认FORMATlocale的默认模式和符号创建 DecimalFormat。当国际化不是主要问题时,这是获取 DecimalFormat 的便捷方式。要获取给定locale的标准格式,请使用 NumberFormat 上的工厂方法,例如 getNumberInstance。这些工厂将为给定的locale返回最合适的 NumberFormat 子类。
- 参见:
-
DecimalFormat
使用给定的模式和默认FORMATlocale的符号创建 DecimalFormat。当国际化不是主要问题时,这是获取 DecimalFormat 的便捷方式。要获取给定locale的标准格式,请使用 NumberFormat 上的工厂方法,例如 getNumberInstance。这些工厂将为给定的locale返回最合适的 NumberFormat 子类。
- 参数:
pattern- 非本地化模式字符串。- 抛出:
NullPointerException- 如果pattern为空IllegalArgumentException- 如果给定的模式无效。- 参见:
-
DecimalFormat
使用给定的模式和符号创建 DecimalFormat。当您需要完全自定义格式的行为时使用此构造方法。要获取给定locale的标准格式,请使用 NumberFormat 上的工厂方法,例如 getInstance 或 getCurrencyInstance。如果您只需要对标准格式进行微小的调整,您可以修改 NumberFormat 工厂方法返回的格式。
- 参数:
pattern- 非本地化模式字符串symbols- 要使用的符号集- 抛出:
NullPointerException- 如果任何给定参数为空IllegalArgumentException- 如果给定的模式无效- 参见:
-
-
方法详情
-
format
格式化数字并将结果文本附加到给定的字符串缓冲区。该号码可以是Number的任何子类。此实现使用允许的最大精度。
- 重写:
format在类NumberFormat中- 参数:
number- 要格式化的数字toAppendTo- 要附加格式化文本的StringBufferpos- 跟踪字段在返回字符串中的位置。例如,要在Locale.USlocale中格式化数字1234567.89,如果给定的fieldPosition是NumberFormat.INTEGER_FIELD,则fieldPosition的开始索引和结束索引将分别设置为 0 和 9,用于输出字符串1,234,567.89。- 返回:
-
作为
toAppendTo传入的值 - 抛出:
IllegalArgumentException- 如果number为空或不是Number的实例。NullPointerException- 如果toAppendTo或pos为空ArithmeticException- 如果需要舍入模式设置为 RoundingMode.UNNECESSARY- 参见:
-
format
格式化 double 以生成字符串。- 指定者:
format在类NumberFormat中- 参数:
number- 双重格式化result- 要附加文本的位置fieldPosition- 跟踪字段在返回字符串中的位置。例如,要在Locale.USlocale中格式化数字1234567.89,如果给定的fieldPosition是NumberFormat.INTEGER_FIELD,则fieldPosition的开始索引和结束索引将分别设置为 0 和 9,用于输出字符串1,234,567.89。- 返回:
- 格式化的数字字符串
- 抛出:
NullPointerException- 如果result或fieldPosition是nullArithmeticException- 如果需要舍入模式设置为 RoundingMode.UNNECESSARY- 参见:
-
format
格式化 long 以生成字符串。- 指定者:
format在类NumberFormat中- 参数:
number- 长格式result- 要附加文本的位置fieldPosition- 跟踪字段在返回字符串中的位置。例如,要在Locale.US区域设置中格式化数字123456789,如果给定的fieldPosition是NumberFormat.INTEGER_FIELD,则fieldPosition的开始索引和结束索引将分别设置为 0 和 11,用于输出字符串123,456,789。- 返回:
- 格式化的数字字符串
- 抛出:
NullPointerException- 如果result或fieldPosition是nullArithmeticException- 如果需要舍入模式设置为 RoundingMode.UNNECESSARY- 参见:
-
formatToCharacterIterator
格式化生成AttributedCharacterIterator的对象。您可以使用返回的AttributedCharacterIterator构建结果字符串,以及确定关于结果字符串的信息。AttributedCharacterIterator 的每个属性键都是
NumberFormat.Field类型,属性值与属性键相同。- 重写:
formatToCharacterIterator在类Format中- 参数:
obj- 要格式化的对象- 返回:
- 描述格式化值的 AttributedCharacterIterator。
- 抛出:
NullPointerException- 如果 obj 为空。IllegalArgumentException- 当 Format 无法格式化给定的对象时。ArithmeticException- 如果需要舍入模式设置为 RoundingMode.UNNECESSARY- 自从:
- 1.4
-
parse
解析字符串中的文本以生成Number。该方法尝试从
pos给出的索引开始解析文本。如果解析成功,则将pos的索引更新为最后使用的字符后的索引(解析不一定使用到字符串末尾的所有字符),并返回解析后的数字。更新后的pos可用于指示下一次调用此方法的起点。如果发生错误,则不更改pos的索引,将pos的错误索引设置为发生错误的字符的索引,并返回null。返回的子类取决于
isParseBigDecimal()的值以及正在解析的字符串。- 如果
isParseBigDecimal()为 false(默认值),则大多数整数值都作为Long对象返回,无论它们是如何编写的:"17"和"17.000"都解析为Long(17)。无法放入Long的值将作为Double返回。这包括带有小数部分的值、无限值、NaN和值 -0.0。DecimalFormatnot 会根据源字符串中是否存在小数点分隔符来决定是返回Double还是Long。这样做可以防止溢出双精度尾数的整数(例如"-9,223,372,036,854,775,808.00")被准确解析。调用者可以使用
Number方法doubleValue、longValue等来获取他们想要的类型。 - 如果
isParseBigDecimal()为真,则值作为BigDecimal对象返回。这些值是由BigDecimal(String)为与locale无关的格式的相应字符串构造的值。负无穷大和正无穷大以及 NaN 的特殊情况作为Double实例返回,其中包含相应的Double常量的值。
DecimalFormat解析所有表示十进制数字的 Unicode 字符,如Character.digit()所定义。此外,DecimalFormat还将以DecimalFormatSymbols对象中定义的本地化零数字开头的十个连续字符识别为数字。- 指定者:
parse在类NumberFormat中- 参数:
text- 要解析的字符串pos- 具有如上所述的索引和错误索引信息的ParsePosition对象。- 返回:
-
解析后的值,如果解析失败则返回
null - 抛出:
NullPointerException- 如果text或pos为空。- 参见:
- 如果
-
getDecimalFormatSymbols
返回十进制格式符号的副本,程序员或用户通常不会更改它。- 返回:
- 所需 DecimalFormatSymbols 的副本
- 参见:
-
setDecimalFormatSymbols
设置十进制格式符号,程序员或用户一般不更改。- 参数:
newSymbols- 所需的 DecimalFormatSymbols- 参见:
-
getPositivePrefix
获取正前缀。示例:+123、123 美元、123 瑞士法郎
- 返回:
- 正面前缀
-
setPositivePrefix
设置正前缀。示例:+123、123 美元、123 瑞士法郎
- 参数:
newValue- 新的正前缀
-
getNegativePrefix
获取否定前缀。示例:-123、($123)(带有负后缀)、sFr-123
- 返回:
- 否定前缀
-
setNegativePrefix
设置否定前缀。示例:-123、($123)(带有负后缀)、sFr-123
- 参数:
newValue- 新的否定前缀
-
getPositiveSuffix
获取正后缀。示例:123%
- 返回:
- 正后缀
-
setPositiveSuffix
设置正后缀。示例:123%
- 参数:
newValue- 新的正后缀
-
getNegativeSuffix
获取负后缀。示例:-123%,($123)(带正后缀)
- 返回:
- 否定后缀
-
setNegativeSuffix
设置负数后缀。示例:123%
- 参数:
newValue- 新的否定后缀
-
getMultiplier
public int getMultiplier()获取以百分比、千分率和类似格式使用的乘数。- 返回:
- 乘数
- 参见:
-
setMultiplier
public void setMultiplier(int newValue) 设置用于百分比、千分率和类似格式的乘数。对于百分比格式,将乘数设置为 100 并将后缀设置为“%”(对于阿拉伯语,使用阿拉伯语百分号)。对于千分之一格式,将乘数设置为 1000,将后缀设置为“U+2030”。示例:乘数为 100,1.23 被格式化为“123”,“123”被解析为 1.23。
- 参数:
newValue- 新的乘数- 参见:
-
getGroupingSize
public int getGroupingSize()返回分组大小。分组大小是数字整数部分中分组分隔符之间的位数。例如,在数字“123,456.78”中,分组大小为 3。分组大小为零表示不使用分组,这提供与调用setGroupingUsed(false)相同的格式。- 返回:
- 分组大小
- 参见:
-
setGroupingSize
public void setGroupingSize(int newValue) 设置分组大小。分组大小是数字整数部分中分组分隔符之间的位数。例如,在数字“123,456.78”中,分组大小为 3。分组大小为零表示不使用分组,这提供与调用setGroupingUsed(false)相同的格式。传入的值被转换为字节,可能会丢失信息。负值或大于
Byte.MAX_VALUE的值将抛出IllegalArgumentException。- 参数:
newValue- 新的分组大小- 抛出:
IllegalArgumentException- 如果newValue为负或大于Byte.MAX_VALUE- 参见:
-
isDecimalSeparatorAlwaysShown
public boolean isDecimalSeparatorAlwaysShown()允许您使用整数获取小数点分隔符的行为。 (小数分隔符将始终与小数一起出现。)示例:十进制开:12345 → 12345。;关闭:12345 → 12345
- 返回:
true如果始终显示小数分隔符;false否则
-
setDecimalSeparatorAlwaysShown
public void setDecimalSeparatorAlwaysShown(boolean newValue) 允许您使用整数设置小数点分隔符的行为。 (小数分隔符将始终与小数一起出现。)示例:十进制开:12345 → 12345。;关闭:12345 → 12345
- 参数:
newValue-true如果始终显示小数分隔符;false否则
-
isParseBigDecimal
public boolean isParseBigDecimal()返回parse(java.lang.String, java.text.ParsePosition)方法是否返回BigDecimal。默认值为假。- 返回:
true如果 parse 方法返回 BigDecimal;false否则- 自从:
- 1.5
- 参见:
-
setParseBigDecimal
public void setParseBigDecimal(boolean newValue) 设置parse(java.lang.String, java.text.ParsePosition)方法是否返回BigDecimal。- 参数:
newValue-true如果解析方法返回 BigDecimal;false否则- 自从:
- 1.5
- 参见:
-
clone
标准重写;语义没有变化。- 重写:
clone在类NumberFormat中- 返回:
- 此实例的克隆。
- 参见:
-
equals
重写等于- 重写:
equals在类NumberFormat中- 参数:
obj- 要比较的参考对象。- 返回:
true如果此对象与 obj 参数相同;false否则。- 参见:
-
hashCode
public int hashCode()重写哈希码- 重写:
hashCode在类NumberFormat中- 返回:
- 此对象的哈希码值。
- 参见:
-
toPattern
合成表示此 Format 对象当前状态的模式字符串。- 返回:
- 模式字符串
- 参见:
-
toLocalizedPattern
合成表示此 Format 对象当前状态的本地化模式字符串。- 返回:
- 本地化模式字符串
- 参见:
-
applyPattern
将给定的模式应用于此格式对象。模式是各种格式化属性的简写规范。这些属性也可以通过各种 setter 方法单独更改。此例程设置的整数数字没有限制,因为这是典型的最终用户期望;如果要设置实际值,请使用 setMaximumInteger。对于负数,使用第二种模式,以分号分隔
示例
"#,#00.0#"→ 1,234.56这意味着最少 2 个整数位、1 个小数位和最多 2 个小数位。
示例:
"#,#00.0#;(#,#00.0#)"表示括号中的负数。在负模式中,忽略最小和最大计数;假定这些设置为正模式。
- 参数:
pattern- 新模式- 抛出:
NullPointerException- 如果pattern为空IllegalArgumentException- 如果给定的模式无效。
-
applyLocalizedPattern
将给定的模式应用于此格式对象。假定该模式采用本地化符号。模式是各种格式化属性的简写规范。这些属性也可以通过各种 setter 方法单独更改。此例程设置的整数数字没有限制,因为这是典型的最终用户期望;如果要设置实际值,请使用 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- 要显示的最大整数位数;如果小于零,则使用零。具体的子类可以对该值强制执行适合被格式化的数字类型的上限。- 参见:
-
setMinimumIntegerDigits
public void setMinimumIntegerDigits(int newValue) 设置数字的整数部分中允许的最小位数。对于BigInteger和BigDecimal对象以外的格式化数字,使用newValue和 309 中较低的一个。负输入值被替换为 0。- 重写:
setMinimumIntegerDigits在类NumberFormat中- 参数:
newValue- 要显示的最小整数位数;如果小于零,则使用零。具体的子类可以对该值强制执行适合被格式化的数字类型的上限。- 参见:
-
setMaximumFractionDigits
public void setMaximumFractionDigits(int newValue) 设置数字的小数部分允许的最大位数。对于BigInteger和BigDecimal对象以外的格式化数字,使用newValue和 340 中较低的一个。负输入值被替换为 0。- 重写:
setMaximumFractionDigits在类NumberFormat中- 参数:
newValue- 要显示的最大小数位数;如果小于零,则使用零。具体的子类可以对该值强制执行适合被格式化的数字类型的上限。- 参见:
-
setMinimumFractionDigits
public void setMinimumFractionDigits(int newValue) 设置数字的小数部分允许的最小位数。对于BigInteger和BigDecimal对象以外的格式化数字,使用newValue和 340 中较低的一个。负输入值被替换为 0。- 重写:
setMinimumFractionDigits在类NumberFormat中- 参数:
newValue- 要显示的最小小数位数;如果小于零,则使用零。具体的子类可以对该值强制执行适合被格式化的数字类型的上限。- 参见:
-
getMaximumIntegerDigits
public int getMaximumIntegerDigits()获取数字的整数部分中允许的最大位数。对于BigInteger和BigDecimal对象以外的格式化数字,使用返回值和 309 中的较低者。- 重写:
getMaximumIntegerDigits在类NumberFormat中- 返回:
- 最大位数
- 参见:
-
getMinimumIntegerDigits
public int getMinimumIntegerDigits()获取数字的整数部分中允许的最小位数。对于BigInteger和BigDecimal对象以外的格式化数字,使用返回值和 309 中的较低者。- 重写:
getMinimumIntegerDigits在类NumberFormat中- 返回:
- 最小位数
- 参见:
-
getMaximumFractionDigits
public int getMaximumFractionDigits()获取数字的小数部分允许的最大位数。对于BigInteger和BigDecimal对象以外的格式化数字,使用返回值和 340 中的较低者。- 重写:
getMaximumFractionDigits在类NumberFormat中- 返回:
- 最大位数。
- 参见:
-
getMinimumFractionDigits
public int getMinimumFractionDigits()获取数字的小数部分允许的最小位数。对于BigInteger和BigDecimal对象以外的格式化数字,使用返回值和 340 中的较低者。- 重写:
getMinimumFractionDigits在类NumberFormat中- 返回:
- 最小位数
- 参见:
-
getCurrency
获取格式化货币值时此十进制格式使用的货币。通过在此数字格式的符号上调用DecimalFormatSymbols.getCurrency获得货币。- 重写:
getCurrency在类NumberFormat中- 返回:
-
此十进制格式使用的货币,或
null - 自从:
- 1.4
-
setCurrency
设置格式化货币值时此数字格式使用的货币。这不会更新数字格式使用的最小或最大小数位数。通过在此数字格式的符号上调用DecimalFormatSymbols.setCurrency来设置货币。- 重写:
setCurrency在类NumberFormat中- 参数:
currency- 此十进制格式要使用的新货币- 抛出:
NullPointerException- 如果currency为空- 自从:
- 1.4
-
getRoundingMode
获取在此 DecimalFormat 中使用的RoundingMode。- 重写:
getRoundingMode在类NumberFormat中- 返回:
RoundingMode用于此 DecimalFormat。- 自从:
- 1.6
- 参见:
-
setRoundingMode
设置在此 DecimalFormat 中使用的RoundingMode。- 重写:
setRoundingMode在类NumberFormat中- 参数:
roundingMode- 要使用的RoundingMode- 抛出:
NullPointerException- 如果roundingMode为空。- 自从:
- 1.6
- 参见:
-