- 所有已实现的接口:
-
Serializable
,Cloneable
DecimalFormat
是NumberFormat
的具体子类,用于格式化十进制数。它具有各种功能,旨在使解析和格式化任何区域设置中的数字成为可能,包括支持西方、阿拉伯和印度数字。它还支持不同类型的数字,包括整数(123)、固定小数点数(123.4)、科学计数法(1.23E4)、百分比(12%)和货币金额($123)。所有这些都可以本地化。
要获取特定区域设置(包括默认区域设置)的NumberFormat
,请调用NumberFormat
的工厂方法之一,例如getInstance()
。一般情况下,不要直接调用DecimalFormat
的构造函数,因为NumberFormat
工厂方法可能返回除DecimalFormat
之外的子类。如果需要自定义格式对象,请执行以下操作:
NumberFormat numFormat = NumberFormat.getInstance(loc); if (numFormat instanceof DecimalFormat decFormat) { decFormat.setDecimalSeparatorAlwaysShown(true); }
DecimalFormat
包括一个模式和一组符号。模式可以直接使用applyPattern()
设置,也可以间接使用API方法设置。符号存储在DecimalFormatSymbols
对象中。在使用NumberFormat
工厂方法时,模式和符号将从本地化的ResourceBundle
中读取。
模式
DecimalFormat
模式具有以下语法:
模式: 正模式 正模式 ; 负模式 正模式: 前缀可选 数字 后缀可选 负模式: 前缀可选 数字 后缀可选 前缀: 除U+FFFE
、U+FFFF
和特殊字符外的任何Unicode字符 后缀: 除U+FFFE
、U+FFFF
和特殊字符外的任何Unicode字符 数字: 整数 指数可选 整数 . 分数 指数可选 整数: 最小整数 # # 整数 # , 整数 最小整数: 0 0 最小整数 0 , 最小整数 分数: 最小分数可选 可选分数可选 最小分数: 0 最小分数可选 可选分数: # 可选分数可选 指数: E 最小指数 最小指数: 0 最小指数可选
DecimalFormat
模式包含正数和负数子模式,例如"#,##0.00;(#,##0.00)"
。每个子模式都有前缀、数字部分和后缀。负数子模式是可选的;如果不存在,则使用带有减号('-' U+002D HYPHEN-MINUS
)前缀的正数子模式作为负数子模式。也就是说,单独使用"0.00"
等同于"0.00;-0.00"
。如果存在显式的负数子模式,它仅用于指定负数前缀和后缀;数字位数、最小数字位数和其他特征都与正数模式相同。这意味着"#,##0.0#;(#)"
产生的行为与"#,##0.0#;(#,##0.0#)"
完全相同。
前缀、后缀和用于无穷大、数字、分组分隔符、小数分隔符等的各种符号可以设置为任意值,并且在格式化时会正确显示。但是,必须注意符号和字符串不要冲突,否则解析将不可靠。例如,正负前缀或后缀必须不同,以便DecimalFormat.parse()
能够区分正数和负数值(如果它们相同,则DecimalFormat
将表现为未指定负数子模式)。另一个例子是小数分隔符和分组分隔符应该是不同的字符,否则解析将变得不可能。
分组分隔符通常用于千位分隔,但在某些国家/地区中,它分隔的是万位。分组大小是分组字符之间的常数数字位数,例如100,000,000的分组大小为3,1,0000,0000的分组大小为4。如果提供具有多个分组字符的模式,则最后一个分组字符与整数末尾之间的间隔将被使用。因此"#,##,###,####"
== "######,####"
== "##,####,####"
。
特殊模式字符
模式中的许多字符被视为字面量;它们在解析期间匹配并在格式化期间保持不变。另一方面,特殊字符代表其他字符、字符串或字符类。除非另有说明,否则如果要将它们作为字面量出现在前缀或后缀中,则必须对其进行引用。
此处列出的字符用于非本地化模式。本地化模式使用来自此格式化程序的DecimalFormatSymbols
对象的相应字符,这些字符将失去其特殊状态。两个例外是货币符号和引号,它们不是本地化的。
符号 位置 本地化? 含义 0
数字 是 数字 #
数字 是 数字,零显示为空 .
数字 是 小数分隔符或货币小数分隔符 -
数字 是 减号 ,
数字 是 分组分隔符或货币分组分隔符 E
数字 是 在科学计数法中分隔尾数和指数。在前缀或后缀中不需要引用。 ;
子模式边界 是 分隔正数和负数子模式 %
前缀或后缀 是 乘以100并显示为百分比 U+2030
前缀或后缀 是 乘以1000并显示为千分比值 ¤ ( U+00A4
)前缀或后缀 否 货币符号,替换为货币符号。如果重复,则替换为国际货币符号。如果在模式中存在,则使用货币小数/分组分隔符而不是小数/分组分隔符。 '
前缀或后缀 否 用于在前缀或后缀中引用特殊字符,例如, "'#'#"
将123格式化为"#123"
。要创建单引号本身,请连续使用两个:"# 点''钟"
。
科学计数法
科学计数法中的数字表示为尾数和十的幂的乘积,例如,1234可以表示为1.234 x 10^3。尾数通常在1.0 ≤ x < 10.0的范围内,但不一定。目前,DecimalFormat
只能通过模式指示格式化和解析科学计数法;目前没有工厂方法创建科学计数法格式。在模式中,指数字符紧随一个或多个数字字符表示科学计数法。例如:"0.###E0"
将数字1234格式化为"1.234E3"
。
- 指数字符后的数字字符数给出了最小指数数字计数。没有最大值。负指数使用本地化的减号格式化,而不是模式中的前缀和后缀。这允许模式如
"0.###E0 m/s"
。 - 最大整数位数是小数点前的'0'和'#'的总和。 最小整数位数是小数点前的'0'的总和。 最大小数和最小小数位数遵循相同的规则,但适用于小数点后但指数前的数字。例如,以下模式:
"#00.0####E0"
将具有最小整数位数= 2("00")和最大整数位数= 3("#00")。它将具有最小小数位数= 1("0")和最大小数位数= 5("0####")。 - 最小和最大整数位数一起解释:
- 如果最大整数位数大于其最小位数且大于1,则强制指数为最大整数位数的倍数,并将最小整数位数解释为1。最常见的用法是生成工程符号,其中指数是三的倍数,例如,
"##0.#####E0"
。使用此模式,数字12345格式为"12.345E3"
,而123456格式为"123.456E3"
。 - 否则,通过调整指数来实现最小整数位数。例如:使用
"00.###E0"
格式化的0.00123将得到"12.3E-4"
。
- 如果最大整数位数大于其最小位数且大于1,则强制指数为最大整数位数的倍数,并将最小整数位数解释为1。最常见的用法是生成工程符号,其中指数是三的倍数,例如,
- 对于给定数字,可以计算尾数中的有效数字数量如下
尾数数字: min(max(最小模式数字,原始数字数字),最大模式数字) 最小模式数字: 最小整数位数 + 最小小数位数 最大模式数字: 最大整数位数 + 最大小数位数 原始数字数字: 要格式化的数字中的有效数字数量
应注意,尾数的整数部分将将任何多余的数字给予小数部分,无论是用于精度还是用于满足组合最小数字的总数。
这种行为可以在以下示例中观察到
DecimalFormat df = new DecimalFormat("#000.000##E0"); df.format(12); // 返回 "12.0000E0" df.format(123456789) // 返回 "1.23456789E8"
- 指数模式可能不包含分组分隔符。
舍入
DecimalFormat
提供了在RoundingMode
中定义的舍入模式进行格式化。默认情况下,它使用RoundingMode.HALF_EVEN
。
数字
对于格式化,DecimalFormat
使用从DecimalFormatSymbols
对象中定义的本地化零位数字开始的十个连续字符作为数字。对于解析,这些数字以及所有Unicode十进制数字,如Character.digit
定义的,都将被识别。
特殊值
非数字(NaN
)被格式化为一个字符串,通常具有单个字符U+FFFD
。此字符串由DecimalFormatSymbols
对象确定。这是唯一一个不使用前缀和后缀的值。
无穷大被格式化为一个字符串,通常具有单个字符U+221E
,应用正负前缀和后缀。无穷大字符串由DecimalFormatSymbols
对象确定。
负零("-0"
)解析为
- 如果
isParseBigDecimal()
为true,则为BigDecimal(0)
, - 如果
isParseBigDecimal()
为false且isParseIntegerOnly()
为true,则为Long(0)
, - 如果
isParseBigDecimal()
和isParseIntegerOnly()
都为false,则为Double(-0.0)
。
同步
十进制格式通常不是同步的。建议为每个线程创建单独的格式实例。如果多个线程同时访问一个格式,则必须在外部同步。
示例
// 使用每个区域设置的本地化数字、整数、货币和百分比格式打印数字 // 对于每个区域设置 Locale[] locales = NumberFormat.getAvailableLocales(); double myNumber = -1234.56; NumberFormat form; for (int j = 0; j < 4; ++j) { System.out.println("FORMAT"); for (Locale locale : locales) { if (locale.getCountry().length() == 0) { continue; // 跳过仅语言的区域设置 } System.out.print(locale.getDisplayName()); form = switch (j) { case 0 -> NumberFormat.getInstance(locale); case 1 -> NumberFormat.getIntegerInstance(locale); case 2 -> NumberFormat.getCurrencyInstance(locale); default -> NumberFormat.getPercentInstance(locale); }; if (form instanceof DecimalFormat decForm) { System.out.print(": " + decForm.toPattern()); } System.out.print(" -> " + form.format(myNumber)); try { System.out.println(" -> " + form.parse(form.format(myNumber))); } catch (ParseException e) {} } }
- 自 JDK 版本:
- 1.1
- 参见:
-
Nested Class Summary
Nested classes/interfaces declared in class java.text.NumberFormat
NumberFormat.Field, NumberFormat.Style
-
Field Summary
Fields declared in class java.text.NumberFormat
FRACTION_FIELD, INTEGER_FIELD
-
Constructor Summary
ConstructorDescription使用默认模式和默认FORMAT
区域设置符号创建 DecimalFormat。DecimalFormat
(String pattern) 使用给定模式和默认FORMAT
区域设置符号创建 DecimalFormat。DecimalFormat
(String pattern, DecimalFormatSymbols symbols) 使用给定模式和符号创建 DecimalFormat。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
applyLocalizedPattern
(String pattern) 将给定模式应用于此格式对象。void
applyPattern
(String pattern) 将给定模式应用于此格式对象。clone()
标准覆盖;语义无变化。boolean
覆盖 equals 方法format
(double number, StringBuffer result, FieldPosition fieldPosition) 格式化 double 值以生成字符串。format
(long number, StringBuffer result, FieldPosition fieldPosition) 格式化 long 值以生成字符串。final StringBuffer
format
(Object number, StringBuffer toAppendTo, FieldPosition pos) 格式化数字并将生成的文本附加到给定的字符串缓冲区。格式化对象并生成AttributedCharacterIterator
。获取此十进制格式在格式化货币值时使用的货币。返回十进制格式符号的副本,通常不会被程序员或用户更改。int
返回分组大小。int
获取数字的小数部分允许的最大位数。int
获取数字的整数部分允许的最大位数。int
获取数字的小数部分允许的最小位数。int
获取数字的整数部分允许的最小位数。int
获取用于百分比、千分比等格式的乘数。获取负数前缀。获取负数后缀。获取正数前缀。获取正数后缀。获取此 DecimalFormat 中使用的RoundingMode
。int
hashCode()
覆盖 hashCode 方法boolean
允许您获取整数与小数分隔符的行为。boolean
返回parse(java.lang.String, java.text.ParsePosition)
方法是否返回BigDecimal
。parse
(String text, ParsePosition pos) 从字符串解析文本以生成Number
。void
setCurrency
(Currency currency) 设置格式化货币值时使用的货币。void
setDecimalFormatSymbols
(DecimalFormatSymbols newSymbols) 设置十进制格式符号,通常不会被程序员或用户更改。void
setDecimalSeparatorAlwaysShown
(boolean newValue) 允许您设置整数与小数分隔符的行为。void
setGroupingSize
(int newValue) 设置分组大小。void
setMaximumFractionDigits
(int newValue) 设置数字的小数部分允许的最大位数。void
setMaximumIntegerDigits
(int newValue) 设置数字的整数部分允许的最大位数。void
setMinimumFractionDigits
(int newValue) 设置数字的小数部分允许的最小位数。void
setMinimumIntegerDigits
(int newValue) 设置数字的整数部分允许的最小位数。void
setMultiplier
(int newValue) 设置用于百分比、千分比等格式的乘数。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
。合成表示此格式对象当前状态的本地化模式字符串。合成表示此格式对象当前状态的模式字符串。Methods declared in class java.text.NumberFormat
format, format, getAvailableLocales, getCompactNumberInstance, getCompactNumberInstance, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, isGroupingUsed, isParseIntegerOnly, parse, parseObject, setGroupingUsed, setParseIntegerOnly
Methods declared in class java.text.Format
format, parseObject
-
Constructor Details
-
DecimalFormat
public DecimalFormat()使用默认模式和默认FORMAT
区域设置符号创建 DecimalFormat。这是在国际化不是主要关注点时获取 DecimalFormat 的便捷方式。要获取给定区域设置的标准格式,请使用 NumberFormat 上的工厂方法,如 getNumberInstance。这些工厂方法将返回给定区域设置的 NumberFormat 的最适当子类。
- 参见:
-
DecimalFormat
使用给定模式和默认FORMAT
区域设置符号创建 DecimalFormat。这是在国际化不是主要关注点时获取 DecimalFormat 的便捷方式。要获取给定区域设置的标准格式,请使用 NumberFormat 上的工厂方法,如 getNumberInstance。这些工厂方法将返回给定区域设置的 NumberFormat 的最适当子类。
- 参数:
-
pattern
- 一个非本地化的模式字符串。 - 抛出:
-
NullPointerException
- 如果pattern
为 null -
IllegalArgumentException
- 如果给定的模式无效。 - 参见:
-
DecimalFormat
使用给定模式和符号创建 DecimalFormat。当您需要完全自定义格式的行为时,请使用此构造函数。要获取给定区域设置的标准格式,请使用 NumberFormat 上的工厂方法,如 getInstance 或 getCurrencyInstance。如果只需要对标准格式进行轻微调整,可以修改 NumberFormat 工厂方法返回的格式。
- 参数:
-
pattern
- 一个非本地化的模式字符串 -
symbols
- 要使用的符号集 - 抛出:
-
NullPointerException
- 如果给定的任何参数为 null -
IllegalArgumentException
- 如果给定的模式无效 - 参见:
-
-
Method Details
-
format
格式化数字并将生成的文本附加到给定的字符串缓冲区。该数字可以是Number
的任何子类。此实现使用允许的最大精度。
- 覆盖:
-
format
在类NumberFormat
中 - 参数:
-
number
- 要格式化的数字 -
toAppendTo
- 要将格式化文本附加到的StringBuffer
-
pos
- 用于跟踪返回的字符串中字段的位置。例如,在Locale.US
区域设置中格式化数字1234567.89
,如果给定的fieldPosition
是NumberFormat.INTEGER_FIELD
,则fieldPosition
的开始索引和结束索引将分别设置为 0 和 9,用于输出字符串1,234,567.89
。 - 返回:
-
作为
toAppendTo
传递的值 - 抛出:
-
IllegalArgumentException
- 如果number
为 null 或不是Number
的实例。 -
NullPointerException
- 如果toAppendTo
或pos
为 null -
ArithmeticException
- 如果需要舍入且舍入模式设置为 RoundingMode.UNNECESSARY - 参见:
-
format
格式化 double 值以生成字符串。- 指定者:
-
format
在类NumberFormat
中 - 参数:
-
number
- 要格式化的双精度数 -
result
- 要附加文本的位置 -
fieldPosition
- 跟踪返回字符串中字段的位置。例如,在Locale.US
区域设置下格式化数字1234567.89
,如果给定的fieldPosition
是NumberFormat.INTEGER_FIELD
,则fieldPosition
的开始索引和结束索引将分别设置为0和9,输出字符串为1,234,567.89
。 - 返回:
- 格式化后的数字字符串
- 抛出:
-
NullPointerException
- 如果result
或fieldPosition
为null
-
ArithmeticException
- 如果需要四舍五入且四舍五入模式设置为RoundingMode.UNNECESSARY - 参见:
-
format
格式化长整型以生成字符串。- 指定者:
-
format
在类NumberFormat
中 - 参数:
-
number
- 要格式化的长整型数 -
result
- 要附加文本的位置 -
fieldPosition
- 跟踪返回字符串中字段的位置。例如,在Locale.US
区域设置下格式化数字123456789
,如果给定的fieldPosition
是NumberFormat.INTEGER_FIELD
,则fieldPosition
的开始索引和结束索引将分别设置为0和11,输出字符串为123,456,789
。 - 返回:
- 格式化后的数字字符串
- 抛出:
-
NullPointerException
- 如果result
或fieldPosition
为null
-
ArithmeticException
- 如果需要四舍五入且四舍五入模式设置为RoundingMode.UNNECESSARY - 参见:
-
formatToCharacterIterator
格式化对象以生成AttributedCharacterIterator
。您可以使用返回的AttributedCharacterIterator
来构建结果字符串,以及确定有关结果字符串的信息。AttributedCharacterIterator的每个属性键将是
NumberFormat.Field
类型,属性值与属性键相同。- 覆盖:
-
formatToCharacterIterator
在类Format
中 - 参数:
-
obj
- 要格式化的对象 - 返回:
- 描述格式化值的AttributedCharacterIterator。
- 抛出:
-
NullPointerException
- 如果obj为null。 -
IllegalArgumentException
- 当格式无法格式化给定对象时。 -
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。DecimalFormat
不会根据源字符串中的小数分隔符的存在与否决定是返回Double
还是Long
。这样做将阻止整数溢出双精度尾数的情况,例如"-9,223,372,036,854,775,808.00"
,无法准确解析。 - 如果
isParseBigDecimal()
为true,则值将作为BigDecimal
对象返回。这些值是由对应字符串在与区域无关的格式中构造的BigDecimal(String)
构造的值。特殊情况负无穷大和正无穷大以及NaN将作为包含相应Double
常量值的Double
实例返回。
DecimalFormat
解析所有表示十进制数字的Unicode字符,如Character.digit()
定义。此外,DecimalFormat
还将以DecimalFormatSymbols
对象中定义的本地化零位数字开始的十个连续字符识别为数字。- 指定者:
-
parse
在类NumberFormat
中 - 参数:
-
text
- 要解析的字符串 -
pos
- 一个带有索引和错误索引信息的ParsePosition
对象,如上所述。 - 返回:
-
解析的值,如果解析失败则返回
null
- 抛出:
-
NullPointerException
- 如果text
或pos
为null。 - 参见:
- 如果
-
getDecimalFormatSymbols
返回十进制格式符号的副本,通常不会被程序员或用户更改。- 返回:
- 所需DecimalFormatSymbols的副本
- 参见:
-
setDecimalFormatSymbols
设置十进制格式符号,通常不会被程序员或用户更改。- 参数:
-
newSymbols
- 所需的DecimalFormatSymbols - 参见:
-
getPositivePrefix
获取正前缀。示例:+123, $123, sFr123
- 返回:
- 正前缀
-
setPositivePrefix
设置正前缀。示例:+123, $123, sFr123
- 参数:
-
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
。默认值为false。- 返回:
-
如果解析方法返回BigDecimal,则为
true
;否则为false
- 自:
- 1.5
- 参见:
-
setParseBigDecimal
public void setParseBigDecimal(boolean newValue) 设置parse(java.lang.String, java.text.ParsePosition)
方法是否返回BigDecimal
。- 参数:
-
newValue
- 如果解析方法返回BigDecimal,则为true
;否则为false
- 自:
- 1.5
- 参见:
-
clone
标准覆盖;语义不变。- 覆盖:
-
clone
在类NumberFormat
- 返回:
- 此实例的克隆。
- 参见:
-
equals
覆盖equals- 覆盖:
-
equals
在类NumberFormat
- 参数:
-
obj
- 要比较的参考对象。 - 返回:
-
如果此对象与obj参数相同,则为
true
;否则为false
。 - 参见:
-
hashCode
public int hashCode()覆盖hashCode- 覆盖:
-
hashCode
在类NumberFormat
- 返回:
- 此对象的哈希码值。
- 参见:
-
toPattern
合成表示此Format对象当前状态的模式字符串。- 返回:
- 一个模式字符串
- 参见:
-
toLocalizedPattern
合成表示此Format对象当前状态的本地化模式字符串。- 返回:
- 一个本地化模式字符串
- 参见:
-
applyPattern
将给定的模式应用于此Format对象。模式是各种格式化属性的简写规范。这些属性也可以通过各种setter方法单独更改。此例程设置的整数位数没有限制,因为这是典型的最终用户需求;如果要设置实际值,请使用setMaximumInteger。对于负数,请使用分号分隔的第二个模式
示例
"#,#00.0#"
→ 1,234.56这意味着最少2个整数位,1个小数位和最多2个小数位。
示例:
"#,#00.0#;(#,#00.0#)"
用于括号中的负数。在负数模式中,最小和最大计数将被忽略;这些被假定在正数模式中设置。
- 参数:
-
pattern
- 新模式 - 抛出:
-
NullPointerException
- 如果pattern
为null -
IllegalArgumentException
- 如果给定的模式无效。
-
applyLocalizedPattern
将给定的模式应用于此Format对象。假定模式采用本地化表示。模式是各种格式化属性的简写规范。这些属性也可以通过各种setter方法单独更改。此例程设置的整数位数没有限制,因为这是典型的最终用户需求;如果要设置实际值,请使用setMaximumInteger。对于负数,请使用分号分隔的第二个模式
示例
"#,#00.0#"
→ 1,234.56这意味着最少2个整数位,1个小数位和最多2个小数位。
示例:
"#,#00.0#;(#,#00.0#)"
用于括号中的负数。在负数模式中,最小和最大计数将被忽略;这些被假定在正数模式中设置。
- 参数:
-
pattern
- 新模式 - 抛出:
-
NullPointerException
- 如果pattern
为null -
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
为null - 自:
- 1.4
-
getRoundingMode
获取此DecimalFormat中使用的RoundingMode
。- 覆盖:
-
getRoundingMode
在类中NumberFormat
- 返回:
-
此DecimalFormat使用的
RoundingMode
。 - 自:
- 1.6
- 参见:
-
setRoundingMode
设置此DecimalFormat中使用的RoundingMode
。- 覆盖:
-
setRoundingMode
在类中NumberFormat
- 参数:
-
roundingMode
- 要使用的RoundingMode
- 抛出:
-
NullPointerException
- 如果roundingMode
为null。 - 自:
- 1.6
- 参见:
-