- java.lang.Object
-
- java.text.Format
-
- java.text.NumberFormat
-
- java.text.DecimalFormat
-
- 实现的所有接口
-
Serializable
,Cloneable
public class DecimalFormatextends 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); }
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
DecimalFormat
模式包含正负子模式,例如,"#,##0.00;(#,##0.00)"
。 每个子模式都有前缀,数字部分和后缀。 负子模式是可选的; 如果不存在,那么前缀为局部减号的正子模式(大多数语言环境中为'-'
)将用作负子模式。 也就是说,"0.00"
单独相当于"0.00;-0.00"
。 如果存在明确的否定子模式,则仅用于指定否定前缀和后缀; 数字,最小数字和其他特征都与正模式相同。 这意味着"#,##0.0#;(#)"
产生与"#,##0.0#;(#,##0.0#)"
完全相同的行为。用于无穷大,数字,千位分隔符,小数分隔符等的前缀,后缀和各种符号可以设置为任意值,并且在格式化期间它们将正确显示。 但是,必须注意符号和字符串不要冲突,否则解析将不可靠。 例如,正负
DecimalFormat.parse()
前缀或后缀必须是不同的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"
.科学计数法
科学记数法中的数字表示为尾数和10的幂的乘积,例如,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"
格式为"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
-
-
嵌套类汇总
-
嵌套类/接口声明在类 java.text.NumberFormat
NumberFormat.Field
-
-
字段汇总
-
声明的属性在类 java.text.NumberFormat
FRACTION_FIELD, INTEGER_FIELD
-
-
构造方法摘要
构造方法 构造器 描述 DecimalFormat()
使用默认的FORMAT
语言环境的模式和符号创建DecimalFormat。DecimalFormat(String pattern)
使用给定模式和默认FORMAT
语言环境的符号创建DecimalFormat。DecimalFormat(String pattern, DecimalFormatSymbols symbols)
使用给定的模式和符号创建DecimalFormat。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
applyLocalizedPattern(String pattern)
将给定的模式应用于此Format对象。void
applyPattern(String pattern)
将给定的模式应用于此Format对象。Object
clone()
标准覆盖; 语义没有变化。boolean
equals(Object obj)
覆盖等于StringBuffer
format(double number, StringBuffer result, FieldPosition fieldPosition)
格式化double以生成字符串。StringBuffer
format(long number, StringBuffer result, FieldPosition fieldPosition)
格式化long以生成字符串。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()
获取以百分比,每千米和类似格式使用的乘数。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
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
。String
toLocalizedPattern()
合成表示此Format对象的当前状态的本地化模式字符串。String
toPattern()
合成表示此Format对象的当前状态的模式字符串。-
声明方法的类 java.text.NumberFormat
format, format, getAvailableLocales, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, isGroupingUsed, isParseIntegerOnly, parse, parseObject, setGroupingUsed, setParseIntegerOnly
-
声明方法的类 java.text.Format
format, parseObject
-
-
-
-
构造方法详细信息
-
DecimalFormat
public DecimalFormat()
使用默认的FORMAT
语言环境的模式和符号创建DecimalFormat。 当国际化不是主要关注点时,这是获取DecimalFormat的便捷方式。要获取给定语言环境的标准格式,请使用NumberFormat上的工厂方法,例如getNumberInstance。 这些工厂将为给定的语言环境返回最合适的NumberFormat子类。
-
DecimalFormat
public DecimalFormat(String pattern)
使用给定模式和默认FORMAT
语言环境的符号创建DecimalFormat。 当国际化不是主要关注点时,这是获取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
- 如果任何给定参数为null -
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
- 跟踪返回字符串中字段的位置。 例如,要格式化Locale.US
语言环境中的数字1234567.89
,如果给定的fieldPosition
是NumberFormat.INTEGER_FIELD
,则对于输出字符串1,234,567.89
,开始索引和结束索引fieldPosition
将分别设置为0和9。 - 结果
- 传入的值为
toAppendTo
- 异常
-
IllegalArgumentException
- 如果number
为null或不是Number
的实例。 -
NullPointerException
- 如果toAppendTo
或pos
为空 -
ArithmeticException
- 如果舍入模式设置为RoundingMode需要舍入ArithmeticException
- 另请参见:
-
FieldPosition
-
format
public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
格式化double以生成字符串。- Specified by:
-
format
in classNumberFormat
- 参数
-
number
- 要格式化的双number
-
result
- 要附加文本的位置 -
fieldPosition
- 跟踪返回字符串中字段的位置。 例如,对于格式化Locale.US
区域设置中的数字1234567.89
,如果给定的fieldPosition
是NumberFormat.INTEGER_FIELD
,则对于输出字符串1,234,567.89
,开始索引和结束索引fieldPosition
将分别设置为0和9。 - 结果
- 格式化的数字字符串
- 异常
-
NullPointerException
- 如果result
或fieldPosition
是null
-
ArithmeticException
- 如果舍入模式设置为RoundingMode需要舍入ArithmeticException
- 另请参见:
-
FieldPosition
-
format
public StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition)
格式化long以生成字符串。- Specified by:
-
format
在课程NumberFormat
- 参数
-
number
- 格式化的长 -
result
- 要附加文本的位置 -
fieldPosition
- 跟踪返回字符串中字段的位置。 例如,要格式化Locale.US
语言环境中的数字123456789
,如果给定的fieldPosition
为NumberFormat.INTEGER_FIELD
,则对于输出字符串123,456,789
,开始索引和结束索引fieldPosition
将分别设置为0和11。 - 结果
- 格式化的数字字符串
- 异常
-
NullPointerException
- 如果result
或fieldPosition
是null
-
ArithmeticException
- 如果舍入模式设置为RoundingMode,则需要舍入ArithmeticException
- 另请参见:
-
FieldPosition
-
formatToCharacterIterator
public AttributedCharacterIterator formatToCharacterIterator(Object obj)
格式化一个生成AttributedCharacterIterator
的对象。 您可以使用返回的AttributedCharacterIterator
来构建生成的String,以及确定有关生成的String的信息。AttributedCharacterIterator的每个属性键的类型为
NumberFormat.Field
,其属性值与属性键相同。- 重写:
-
formatToCharacterIterator
,课程Format
- 参数
-
obj
- 要格式化的对象 - 结果
- AttributedCharacterIterator描述格式化的值。
- 异常
-
NullPointerException
- 如果obj为null。 -
IllegalArgumentException
- 格式无法格式化给定对象时。 -
ArithmeticException
- 如果舍入模式设置为RoundingMode需要舍入ArithmeticException
- 从以下版本开始:
- 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"
)被准确解析。呼叫者可以使用
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()
获取以百分比,每千米和类似格式使用的乘数。- 结果
- 乘数
- 另请参见:
-
setMultiplier(int)
-
setMultiplier
public void setMultiplier(int newValue)
设置以百分比,每千米和类似格式使用的乘数。 对于百分比格式,将乘数设置为100,将后缀设置为'%'(对于阿拉伯语,使用阿拉伯语百分号)。 对于每千米格式,将乘数设置为1000,将后缀设置为'\ u2030'。示例:使用乘数100,将1.23格式化为“123”,将“123”解析为1.23。
- 参数
-
newValue
- 新的乘数 - 另请参见:
-
getMultiplier()
-
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
如果parse方法返回BigDecimal; 否则为false
- 从以下版本开始:
- 1.5
- 另请参见:
-
setParseBigDecimal(boolean)
-
setParseBigDecimal
public void setParseBigDecimal(boolean newValue)
设置parse(java.lang.String, java.text.ParsePosition)
方法是否返回BigDecimal
。- 参数
-
newValue
-true
如果parse方法返回BigDecimal; 否则为false
- 从以下版本开始:
- 1.5
- 另请参见:
-
isParseBigDecimal()
-
clone
public Object clone()
标准覆盖; 语义没有变化。- 重写:
-
clone
in classNumberFormat
- 结果
- 这个实例的克隆。
- 另请参见:
-
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对象。 模式是各种格式属性的简写规范。 这些属性也可以通过各种setter方法单独更改。此例程设置的整数位数没有限制,因为这是典型的最终用户需求; 如果要设置实际值,请使用setMaximumInteger。 对于负数,请使用以分号分隔的第二个模式
例
"#,#00.0#"
→1,234.56这意味着至少2个整数位,1个小数位,最多2个小数位。
示例:
"#,#00.0#;(#,#00.0#)"
用于括号中的否定。在负模式中,忽略最小和最大计数; 假设这些被设定为正模式。
- 参数
-
pattern
- 一种新模式 - 异常
-
NullPointerException
- 如果pattern
为空 -
IllegalArgumentException
- 如果给定的模式无效。
-
applyLocalizedPattern
public void applyLocalizedPattern(String pattern)
将给定的模式应用于此Format对象。 假设该模式采用局部表示法。 模式是各种格式属性的简写规范。 这些属性也可以通过各种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
- 要显示的最大整数位数; 如果小于零,则使用零。 具体子类可以对适合于格式化的数字类型的此值强制执行上限。 - 另请参见:
-
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
in classNumberFormat
- 结果
- 最大位数。
- 另请参见:
-
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
in classNumberFormat
- 参数
-
currency
- 此十进制格式使用的新货币 - 异常
-
NullPointerException
- 如果currency
为空 - 从以下版本开始:
- 1.4
-
getRoundingMode
public RoundingMode getRoundingMode()
获取此DecimalFormat中使用的RoundingMode
。- 重写:
-
getRoundingMode
在课程NumberFormat
- 结果
- 用于此DecimalFormat的
RoundingMode
。 - 从以下版本开始:
- 1.6
- 另请参见:
-
setRoundingMode(RoundingMode)
-
setRoundingMode
public void setRoundingMode(RoundingMode roundingMode)
设置此DecimalFormat中使用的RoundingMode
。- 重写:
-
setRoundingMode
在课程NumberFormat
- 参数
-
roundingMode
- 要使用的RoundingMode
- 异常
-
NullPointerException
- 如果roundingMode
为空。 - 从以下版本开始:
- 1.6
- 另请参见:
-
getRoundingMode()
-
-