Serializable, Cloneablepublic class DecimalFormat extends NumberFormat
DecimalFormat is a concrete subclass of NumberFormat that formats decimal numbers in a localized manner. It has a variety of features designed to make it possible to parse and format numbers in any locale, including support for Western, Arabic, and Indic digits. It also supports different kinds of numbers, including integers (123), fixed-point numbers (123.4), scientific notation (1.23E4), percentages (12%), and currency amounts ($123). NumberFormat factory methods, such as NumberFormat.getInstance(). These factory methods may not always return a DecimalFormat depending on the locale-service provider implementation installed. Thus, to use an instance method defined by DecimalFormat, the NumberFormat returned by the factory method should be type checked before converted to DecimalFormat. If the installed locale-sensitive service implementation does not support the given Locale, the parent locale chain will be looked up, and a Locale used that is supported. If the factory methods are not desired, use one of the constructors such as DecimalFormat(String pattern). See the Pattern section for more information on the pattern parameter.
NumberFormat nFmt = NumberFormat.getCurrencyInstance(Locale.US);
if (nFmt instanceof DecimalFormat dFmt) {
// pattern match to DecimalFormat to use setPositiveSuffix(String)
dFmt.setPositiveSuffix(" dollars");
dFmt.format(100000); // returns "$100,000.00 dollars"
dFmt.parse("$100,000.00 dollars"); // returns 100000
}
DecimalFormat can adjust its rounding using setRoundingMode(RoundingMode). By default, it uses RoundingMode.HALF_EVEN. DecimalFormat uses the ten consecutive characters starting with the localized zero digit defined in the DecimalFormatSymbols object as digits. When parsing, these digits as well as all Unicode decimal digits, as defined by Character.digit, are recognized.
pattern or using one of the appropriate DecimalFormat setter methods, for example, setMinimumFractionDigits(int). These limits have no impact on parsing behavior. Not a Number (NaN) is formatted as a string, which is typically given as "NaN". This string is determined by DecimalFormatSymbols.getNaN(). This is the only value for which the prefixes and suffixes are not attached.
Infinity is formatted as a string, which is typically given as "∞" (U+221E), with the positive or negative prefixes and suffixes attached. This string is determined by DecimalFormatSymbols.getInfinity().
Negative zero ("-0") parses to
BigDecimal(0) if isParseBigDecimal() is true Long(0) if isParseBigDecimal() is false and isParseIntegerOnly() is true Double(-0.0) if both isParseBigDecimal() and isParseIntegerOnly() are false Decimal formats are generally not synchronized. It is recommended to create separate format instances for each thread. If multiple threads access a format concurrently, it must be synchronized externally.
DecimalFormat comprises a pattern and a set of symbols. The pattern may be set directly using applyPattern(), or indirectly using the various API methods. The symbols are stored in a
DecimalFormatSymbols object. When using the NumberFormat factory methods, the pattern and symbols are created from the locale-sensitive service implementation installed. DecimalFormat patterns have the following syntax:
Pattern:
PositivePattern
PositivePattern ; NegativePattern
PositivePattern:
Prefixopt Number Suffixopt
NegativePattern:
Prefixopt Number Suffixopt
Prefix:
Any characters except the special pattern characters
Suffix:
Any characters except the special pattern 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
The special characters in the table below are interpreted syntactically when used in the DecimalFormat pattern. They must be quoted, unless noted otherwise, if they are to appear in the prefix or suffix as literals.
The characters in the Symbol column are used in non-localized patterns. The corresponding characters in the Localized Symbol column are used in localized patterns, with the characters in Symbol losing their syntactical meaning. Two exceptions are the currency sign (U+00A4) and quote (U+0027), which are not localized.
Non-localized patterns should be used when calling applyPattern(String). Localized patterns should be used when calling applyLocalizedPattern(String).
Symbol Localized Symbol Location Meaning 0DecimalFormatSymbols.getZeroDigit()Number Digit #DecimalFormatSymbols.getDigit()Number Digit, zero shows as absent .DecimalFormatSymbols.getDecimalSeparator()Number Decimal separator or monetary decimal separator - (U+002D)DecimalFormatSymbols.getMinusSign()Number Minus sign ,DecimalFormatSymbols.getGroupingSeparator()Number Grouping separator or monetary grouping separator EDecimalFormatSymbols.getExponentSeparator()Number Separates mantissa and exponent in scientific notation. This value is case sensistive. Need not be quoted in prefix or suffix. ;DecimalFormatSymbols.getPatternSeparator()Subpattern boundary Separates positive and negative subpatterns %DecimalFormatSymbols.getPercent()Prefix or suffix Multiply by 100 and show as percentage ‰ ( U+2030)DecimalFormatSymbols.getPerMill()Prefix or suffix Multiply by 1000 and show as per mille value ¤ ( U+00A4)n/a (not localized) Prefix or suffix Currency sign, replaced by currency symbol. If doubled, replaced by international currency symbol. If present in a pattern, the monetary decimal/grouping separators are used instead of the decimal/grouping separators. ' (U+0027)n/a (not localized) Prefix or suffix 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".
DecimalFormat pattern, if the pattern is not in scientific notation, the maximum number of integer digits will not be derived from the pattern, and instead set to Integer.MAX_VALUE. Otherwise, if the pattern is in scientific notation, the maximum number of integer digits will be derived from the pattern. This derivation is detailed in the Scientific Notation section. setMaximumIntegerDigits(int) can be used to manually adjust the maximum integer digits. DecimalFormat pattern contains a positive and negative subpattern, for example, "#,##0.00;(#,##0.00)". Each subpattern has a prefix, numeric part, and suffix. The negative subpattern is optional; if absent, then the positive subpattern prefixed with the minus sign '-' (U+002D HYPHEN-MINUS) is used as the negative subpattern. That is, "0.00" alone is equivalent to "0.00;-0.00". If there is an explicit negative subpattern, it serves only to specify the negative prefix and suffix; the number of digits, minimal digits, and other characteristics are all the same as the positive pattern. That means that "#,##0.0#;(#)" produces precisely the same behavior as "#,##0.0#;(#,##0.0#)". The prefixes, suffixes, and various symbols used for infinity, digits, grouping separators, decimal separators, etc. may be set to arbitrary values, and they will appear properly during formatting. However, care must be taken that the symbols and strings do not conflict, or parsing will be unreliable. For example, either the positive and negative prefixes or the suffixes must be distinct for DecimalFormat.parse() to be able to distinguish positive from negative values. (If they are identical, then DecimalFormat will behave as if no negative subpattern was specified.) Another example is that the decimal separator and grouping separator should be distinct characters, or parsing will be impossible.
The grouping separator is commonly used for thousands, but in some locales it separates ten-thousands. The grouping size is a constant number of digits between the grouping characters, such as 3 for 100,000,000 or 4 for 1,0000,0000. If you supply a pattern with multiple grouping characters, the interval between the last one and the end of the integer is the one that is used. For example, "#,##,###,####" == "######,####" == "##,####,####".
Numbers in scientific notation are expressed as the product of a mantissa and a power of ten, for example, 1234 can be expressed as 1.234 x 10^3. The mantissa is often in the range 1.0 ≤ x < 10.0, but it need not be. DecimalFormat can be instructed to format and parse scientific notation only via a pattern; there is currently no factory method that creates a scientific notation format. In a pattern, the exponent character immediately followed by one or more digit characters indicates scientific notation. Example: "0.###E0" formats the number 1234 as "1.234E3".
"0.###E0 m/s". "#00.0####E0" would have a minimum number of integer digits = 2("00") and a maximum number of integer digits = 3("#00"). It would have a minimum number of fraction digits = 1("0") and a maximum number of fraction digits= 5("0####"). "##0.#####E0". Using this pattern, the number 12345 formats to "12.345E3", and 123456 formats to "123.456E3". "00.###E0" yields "12.3E-4".
Mantissa Digits:
min(max(Minimum Pattern Digits, Original Number Digits), Maximum Pattern Digits)
Minimum pattern Digits:
Minimum Integer Digits + Minimum Fraction Digits
Maximum pattern Digits:
Maximum Integer Digits + Maximum Fraction Digits
Original Number Digits:
The amount of significant digits in the number to be formatted
This means that generally, a mantissa will have up to the combined maximum integer and fraction digits, if the original number itself has enough significant digits. However, if there are more minimum pattern digits than significant digits in the original number, the mantissa will have significant digits that equals the combined minimum integer and fraction digits. The number of significant digits does not affect parsing. It should be noted, that the integer portion of the mantissa will give any excess digits to the fraction portion, whether it be for precision or for satisfying the total amount of combined minimum digits.
This behavior can be observed in the following example,
DecimalFormat df = new DecimalFormat("#000.000##E0");
df.format(12); // returns "12.0000E0"
df.format(123456789) // returns "1.23456789E8"
Number other than BigInteger and BigDecimal, 309 is used as the upper limit for integer digits, and 340 as the upper limit for fraction digits. This occurs, even if one of the DecimalFormat getter methods, for example, getMinimumFractionDigits() returns a numerically greater value.NumberFormat.Field, NumberFormat.Style
FRACTION_FIELD, INTEGER_FIELD
| Constructor | Description |
|---|---|
DecimalFormat() |
Creates a DecimalFormat using the default pattern and symbols for the default FORMAT locale. |
DecimalFormat |
Creates a DecimalFormat using the given pattern and the symbols for the default FORMAT locale. |
DecimalFormat |
Creates a DecimalFormat using the given pattern and symbols. |
| Modifier and Type | Method | Description |
|---|---|---|
void |
applyLocalizedPattern |
Apply the given pattern to this Format object. |
void |
applyPattern |
Apply the given pattern to this Format object. |
Object |
clone() |
Standard override; no change in semantics. |
boolean |
equals |
Compares the specified object with this DecimalFormat for equality. |
StringBuffer |
format |
Formats a double to produce a string. |
StringBuffer |
format |
Format a long to produce a string. |
final StringBuffer |
format |
Formats a number and appends the resulting text to the given string buffer. |
AttributedCharacterIterator |
formatToCharacterIterator |
Formats an Object producing an AttributedCharacterIterator. |
Currency |
getCurrency() |
Gets the currency used by this decimal format when formatting currency values. |
DecimalFormatSymbols |
getDecimalFormatSymbols() |
Returns a copy of the decimal format symbols, which is generally not changed by the programmer or user. |
int |
getGroupingSize() |
Return the grouping size. |
int |
getMaximumFractionDigits() |
Returns the maximum number of digits allowed in the fraction portion of a number during formatting. |
int |
getMaximumIntegerDigits() |
Returns the maximum number of digits allowed in the integer portion of a number during formatting. |
int |
getMinimumFractionDigits() |
Returns the minimum number of digits allowed in the fraction portion of a number during formatting. |
int |
getMinimumIntegerDigits() |
Returns the minimum number of digits allowed in the integer portion of a number during formatting. |
int |
getMultiplier() |
Gets the multiplier for use in percent, per mille, and similar formats. |
String |
getNegativePrefix() |
Get the negative prefix. |
String |
getNegativeSuffix() |
Get the negative suffix. |
String |
getPositivePrefix() |
Get the positive prefix. |
String |
getPositiveSuffix() |
Get the positive suffix. |
RoundingMode |
getRoundingMode() |
Gets the RoundingMode used in this DecimalFormat. |
int |
hashCode() |
Returns the hash code for this DecimalFormat. |
boolean |
isDecimalSeparatorAlwaysShown() |
Allows you to get the behavior of the decimal separator with integers. |
boolean |
isParseBigDecimal() |
Returns whether the parse(java.lang.String, java.text.ParsePosition) method returns BigDecimal. |
boolean |
isStrict() |
Returns true if this format will parse numbers strictly; false otherwise. |
Number |
parse |
Parses text from the beginning of the given string to produce a Number. |
void |
setCurrency |
Sets the currency used by this number format when formatting currency values. |
void |
setDecimalFormatSymbols |
Sets the decimal format symbols, which is generally not changed by the programmer or user. |
void |
setDecimalSeparatorAlwaysShown |
Allows you to set the behavior of the decimal separator with integers. |
void |
setGroupingSize |
Set the grouping size. |
void |
setMaximumFractionDigits |
Sets the maximum number of digits allowed in the fraction portion of a number during formatting. |
void |
setMaximumIntegerDigits |
Sets the maximum number of digits allowed in the integer portion of a number during formatting. |
void |
setMinimumFractionDigits |
Sets the minimum number of digits allowed in the fraction portion of a number during formatting. |
void |
setMinimumIntegerDigits |
Sets the minimum number of digits allowed in the integer portion of a number during formatting. |
void |
setMultiplier |
Sets the multiplier for use in percent, per mille, and similar formats. |
void |
setNegativePrefix |
Set the negative prefix. |
void |
setNegativeSuffix |
Set the negative suffix. |
void |
setParseBigDecimal |
Sets whether the parse(java.lang.String, java.text.ParsePosition) method returns BigDecimal. |
void |
setPositivePrefix |
Set the positive prefix. |
void |
setPositiveSuffix |
Set the positive suffix. |
void |
setRoundingMode |
Sets the RoundingMode used in this DecimalFormat. |
void |
setStrict |
Change the leniency value for parsing. |
String |
toLocalizedPattern() |
Synthesizes a localized pattern string that represents the current state of this Format object. |
String |
toPattern() |
Synthesizes a pattern string that represents the current state of this Format object. |
String |
toString() |
Returns a string identifying this DecimalFormat, for debugging. |
format, format, getAvailableLocales, getCompactNumberInstance, getCompactNumberInstance, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, isGroupingUsed, isParseIntegerOnly, parse, parseObject, setGroupingUsed, setParseIntegerOnly
format, parseObject
public DecimalFormat()
FORMAT locale. This is a convenient way to obtain a DecimalFormat when internationalization is not the main concern.NumberFormat factory methods such as NumberFormat.getNumberInstance(Locale). These factories will return the most appropriate subclass of NumberFormat for a given locale.public DecimalFormat(String pattern)
FORMAT locale. This is a convenient way to obtain a DecimalFormat when internationalization is not the main concern. The number of maximum integer digits is usually not derived from the pattern. See the note in the Patterns section for more detail.NumberFormat factory methods such as NumberFormat.getNumberInstance(Locale). These factories will return the most appropriate subclass of NumberFormat for a given locale.pattern - a non-localized pattern string.NullPointerException - if pattern is nullIllegalArgumentException - if the given pattern is invalid.public DecimalFormat(String pattern, DecimalFormatSymbols symbols)
Patterns section for more detail.NumberFormat factory methods such as NumberFormat.getInstance(Locale) or NumberFormat.getCurrencyInstance(Locale). If you need only minor adjustments to a standard format, you can modify the format returned by a NumberFormat factory method.pattern - a non-localized pattern stringsymbols - the set of symbols to be usedNullPointerException - if any of the given arguments is nullIllegalArgumentException - if the given pattern is invalidpublic final StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
Number.format in class NumberFormat
number - the number to formattoAppendTo - the StringBuffer to which the formatted text is to be appendedpos - keeps track on the position of the field within the returned string. For example, for formatting a number 1234567.89 in Locale.US locale, if the given fieldPosition is NumberFormat.INTEGER_FIELD, the begin index and end index of fieldPosition will be set to 0 and 9, respectively for the output string 1,234,567.89.toAppendTo
IllegalArgumentException - if number is null or not an instance of Number.NullPointerException - if toAppendTo or pos is nullArithmeticException - if rounding is needed with rounding mode being set to RoundingMode.UNNECESSARYpublic StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
format in class NumberFormat
number - The double to formatresult - where the text is to be appendedfieldPosition - keeps track on the position of the field within the returned string. For example, for formatting a number 1234567.89 in Locale.US locale, if the given fieldPosition is NumberFormat.INTEGER_FIELD, the begin index and end index of fieldPosition will be set to 0 and 9, respectively for the output string 1,234,567.89.NullPointerException - if result or fieldPosition is null
ArithmeticException - if rounding is needed with rounding mode being set to RoundingMode.UNNECESSARYpublic StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition)
format in class NumberFormat
number - The long to formatresult - where the text is to be appendedfieldPosition - keeps track on the position of the field within the returned string. For example, for formatting a number 123456789 in Locale.US locale, if the given fieldPosition is NumberFormat.INTEGER_FIELD, the begin index and end index of fieldPosition will be set to 0 and 11, respectively for the output string 123,456,789.NullPointerException - if result or fieldPosition is null
ArithmeticException - if rounding is needed with rounding mode being set to RoundingMode.UNNECESSARYpublic AttributedCharacterIterator formatToCharacterIterator(Object obj)
AttributedCharacterIterator. You can use the returned AttributedCharacterIterator to build the resulting String, as well as to determine information about the resulting String. Each attribute key of the AttributedCharacterIterator will be of type NumberFormat.Field, with the attribute value being the same as the attribute key.
formatToCharacterIterator in class Format
obj - The object to formatNullPointerException - if obj is null.IllegalArgumentException - when the Format cannot format the given object.ArithmeticException - if rounding is needed with rounding mode being set to RoundingMode.UNNECESSARYpublic Number parse(String text, ParsePosition pos)
Number. This method attempts to parse text starting at the index given by the ParsePosition. If parsing succeeds, then the index of the
ParsePosition is updated to the index after the last character used (parsing does not necessarily use all characters up to the end of the string), and the parsed number is returned. The updated
ParsePosition can be used to indicate the starting point for the next call to this method. If an error occurs, then the index of the ParsePosition is not changed, the error index of the ParsePosition is set to the index of the character where the error occurred, and null is returned.
This method will return a Long if possible (e.g., within the range [Long.MIN_VALUE, Long.MAX_VALUE] and with no decimals), otherwise a Double.
Parsing can be done in either a strict or lenient manner, by default it is lenient.
Parsing fails when lenient, if the prefix and/or suffix are non-empty and cannot be found due to parsing ending early, or the first character after the prefix cannot be parsed.
Parsing fails when strict, if in text,
Locale.US currency format prefix: "$" Locale.US percent format suffix: "%" NumberFormat.isGroupingUsed() returns true, and getGroupingSize() is not adhered to NumberFormat.isGroupingUsed() returns false, and the grouping symbol is found NumberFormat.isGroupingUsed() returns true and the grouping symbol occurs after the decimal separator The subclass returned depends on the value of isParseBigDecimal() as well as on the string being parsed.
isParseBigDecimal() is false (the default), most integer values are returned as Long objects, no matter how they are written: "17" and "17.000" both parse to Long(17). Values that cannot fit into a Long are returned as Doubles. This includes values with a fractional part, infinite values, NaN, and the value -0.0. DecimalFormat does not decide whether to return a Double or a Long based on the presence of a decimal separator in the source string. Doing so would prevent integers that overflow the mantissa of a double, such as "-9,223,372,036,854,775,808.00", from being parsed accurately. Callers may use the Number methods doubleValue, longValue, etc., to obtain the type they want.
isParseBigDecimal() is true, values are returned as BigDecimal objects. The values are the ones constructed by BigDecimal(String) for corresponding strings in locale-independent format. The special cases negative and positive infinity and NaN are returned as Double instances holding the values of the corresponding Double constants. DecimalFormat parses all Unicode characters that represent decimal digits, as defined by Character.digit(). In addition, DecimalFormat also recognizes as digits the ten consecutive characters starting with the localized zero digit defined in the DecimalFormatSymbols object.
parse in class NumberFormat
text - the string to be parsedpos - A ParsePosition object with index and error index information as described above.null if the parse failsNullPointerException - if text or pos is null.public DecimalFormatSymbols getDecimalFormatSymbols()
public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols)
newSymbols - desired DecimalFormatSymbolspublic String getPositivePrefix()
Examples: +123, $123, sFr123
public void setPositivePrefix(String newValue)
Examples: +123, $123, sFr123
newValue - the new positive prefix. Non-null.NullPointerException - if newValue is null
public String getNegativePrefix()
Examples: -123, ($123) (with negative suffix), sFr-123
public void setNegativePrefix(String newValue)
Examples: -123, ($123) (with negative suffix), sFr-123
newValue - the new negative prefix. Non-null.NullPointerException - if newValue is null
public String getPositiveSuffix()
Example: 123%
public void setPositiveSuffix(String newValue)
Example: 123%
newValue - the new positive suffix. Non-null.NullPointerException - if newValue is null
public String getNegativeSuffix()
Examples: -123%, ($123) (with positive suffixes)
public void setNegativeSuffix(String newValue)
Examples: 123%
newValue - the new negative suffix. Non-null.NullPointerException - if newValue is null
public int getMultiplier()
public void setMultiplier(int newValue)
U+2030'. Example: with multiplier 100, 1.23 is formatted as "123", and "123" is parsed into 1.23. If isParseIntegerOnly() returns true, "123" is parsed into 1.
newValue - the new multiplierpublic int getGroupingSize()
setGroupingUsed(false).public void setGroupingSize(int newValue)
setGroupingUsed(false). The value passed in is converted to a byte, which may lose information. Values that are negative or greater than Byte.MAX_VALUE, will throw an IllegalArgumentException.
newValue - the new grouping sizeIllegalArgumentException - if newValue is negative or greater than Byte.MAX_VALUE
public boolean isDecimalSeparatorAlwaysShown()
Example: Decimal ON: 12345 → 12345.; OFF: 12345 → 12345
true if the decimal separator is always shown; false otherwisepublic void setDecimalSeparatorAlwaysShown(boolean newValue)
Example: Decimal ON: 12345 → 12345.; OFF: 12345 → 12345
newValue - true if the decimal separator is always shown; false otherwisepublic boolean isStrict()
true if this format will parse numbers strictly; false otherwise.isStrict in class NumberFormat
true if this format will parse numbers strictly; false otherwisepublic void setStrict(boolean strict)
setStrict in class NumberFormat
strict - true if parsing should be done strictly; false otherwisepublic boolean isParseBigDecimal()
parse(java.lang.String, java.text.ParsePosition) method returns BigDecimal. The default value is false.true if the parse method returns BigDecimal; false otherwisepublic void setParseBigDecimal(boolean newValue)
parse(java.lang.String, java.text.ParsePosition) method returns BigDecimal.newValue - true if the parse method returns BigDecimal; false otherwisepublic Object clone()
clone in class NumberFormat
public boolean equals(Object obj)
DecimalFormat for equality. Returns true if the object is also a DecimalFormat and the two formats would format any value the same.equals in class NumberFormat
getClass(), rather than instanceof. Therefore, in the equals methods in subclasses, no instance of this class should compare as equal to an instance of a subclass.obj - object to be compared for equalitytrue if the specified object is equal to this DecimalFormat
public int hashCode()
DecimalFormat.hashCode in class NumberFormat
getPositivePrefix() and NumberFormat.hashCode().DecimalFormat
public String toPattern()
public String toLocalizedPattern()
public void applyPattern(String pattern)
The number of maximum integer digits is usually not derived from the pattern. See the note in the Patterns section for more detail. For negative numbers, use a second pattern, separated by a semicolon
Example "#,#00.0#" → 1,234.56
This means a minimum of 2 integer digits, 1 fraction digit, and a maximum of 2 fraction digits.
Example: "#,#00.0#;(#,#00.0#)" for negatives in parentheses.
In negative patterns, the minimum and maximum counts are ignored; these are presumed to be set in the positive pattern.
pattern - a new patternNullPointerException - if pattern is nullIllegalArgumentException - if the given pattern is invalid.public void applyLocalizedPattern(String pattern)
The number of maximum integer digits is usually not derived from the pattern. See the note in the Patterns section for more detail. For negative numbers, use a second pattern, separated by a semicolon
Example "#,#00.0#" → 1,234.56
This means a minimum of 2 integer digits, 1 fraction digit, and a maximum of 2 fraction digits.
Example: "#,#00.0#;(#,#00.0#)" for negatives in parentheses.
In negative patterns, the minimum and maximum counts are ignored; these are presumed to be set in the positive pattern.
pattern - a new patternNullPointerException - if pattern is nullIllegalArgumentException - if the given pattern is invalid.public void setMaximumIntegerDigits(int newValue)
maximumIntegerDigits must be ≥ minimumIntegerDigits. If the new value for
maximumIntegerDigits is less than the current value of minimumIntegerDigits, then minimumIntegerDigits will also be set to the new value. Negative input values are replaced with 0.setMaximumIntegerDigits in class NumberFormat
newValue - the maximum number of integer digits to be shown.public void setMinimumIntegerDigits(int newValue)
minimumIntegerDigits must be ≤ maximumIntegerDigits. If the new value for minimumIntegerDigits exceeds the current value of maximumIntegerDigits, then
maximumIntegerDigits will also be set to the new value. Negative input values are replaced with 0.setMinimumIntegerDigits in class NumberFormat
newValue - the minimum number of integer digits to be shown.public void setMaximumFractionDigits(int newValue)
maximumFractionDigits must be ≥ minimumFractionDigits. If the new value for maximumFractionDigits is less than the current value of minimumFractionDigits, then minimumFractionDigits will also be set to the new value. Negative input values are replaced with 0.setMaximumFractionDigits in class NumberFormat
newValue - the maximum number of fraction digits to be shown.public void setMinimumFractionDigits(int newValue)
minimumFractionDigits must be ≤ maximumFractionDigits. If the new value for
minimumFractionDigits exceeds the current value of
maximumFractionDigits, then maximumFractionDigits will also be set to the new value. Negative input values are replaced with 0.setMinimumFractionDigits in class NumberFormat
newValue - the minimum number of fraction digits to be shown.public int getMaximumIntegerDigits()
Unlike the other digit limits, maximumIntegerDigits is not updated by DecimalFormats created or updated with a string pattern.
getMaximumIntegerDigits in class NumberFormat
public int getMinimumIntegerDigits()
getMinimumIntegerDigits in class NumberFormat
public int getMaximumFractionDigits()
getMaximumFractionDigits in class NumberFormat
public int getMinimumFractionDigits()
getMinimumFractionDigits in class NumberFormat
public Currency getCurrency()
DecimalFormatSymbols.getCurrency on this number format's symbols.getCurrency in class NumberFormat
null
public void setCurrency(Currency currency)
DecimalFormatSymbols.setCurrency on this number format's symbols.setCurrency in class NumberFormat
currency - the new currency to be used by this decimal formatNullPointerException - if currency is nullpublic RoundingMode getRoundingMode()
RoundingMode used in this DecimalFormat.getRoundingMode in class NumberFormat
RoundingMode used for this DecimalFormat.public void setRoundingMode(RoundingMode roundingMode)
RoundingMode used in this DecimalFormat.setRoundingMode in class NumberFormat
roundingMode - The RoundingMode to be usedNullPointerException - if roundingMode is null.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/text/DecimalFormat.html