Module java.base
Package java.text

Class DecimalFormat

所有已实现的接口:
Serializable, Cloneable

public class DecimalFormat extends NumberFormat
DecimalFormatNumberFormat的具体子类,用于格式化十进制数。它具有各种功能,旨在使解析和格式化任何区域设置中的数字成为可能,包括支持西方、阿拉伯和印度数字。它还支持不同类型的数字,包括整数(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+FFFEU+FFFF和特殊字符外的任何Unicode字符
 后缀:U+FFFEU+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"
  • 对于给定数字,可以计算尾数中的有效数字数量如下
     尾数数字:
             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
参见:
  • Constructor Details

  • Method Details

    • format

      public final StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
      格式化数字并将生成的文本附加到给定的字符串缓冲区。该数字可以是 Number 的任何子类。

      此实现使用允许的最大精度。

      覆盖:
      format 在类 NumberFormat
      参数:
      number - 要格式化的数字
      toAppendTo - 要将格式化文本附加到的 StringBuffer
      pos - 用于跟踪返回的字符串中字段的位置。例如,在 Locale.US 区域设置中格式化数字 1234567.89,如果给定的 fieldPositionNumberFormat.INTEGER_FIELD,则 fieldPosition 的开始索引和结束索引将分别设置为 0 和 9,用于输出字符串 1,234,567.89
      返回:
      作为 toAppendTo 传递的值
      抛出:
      IllegalArgumentException - 如果 number 为 null 或不是 Number 的实例。
      NullPointerException - 如果 toAppendTopos 为 null
      ArithmeticException - 如果需要舍入且舍入模式设置为 RoundingMode.UNNECESSARY
      参见:
    • format

      public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
      格式化 double 值以生成字符串。
      指定者:
      format 在类 NumberFormat
      参数:
      number - 要格式化的双精度数
      result - 要附加文本的位置
      fieldPosition - 跟踪返回字符串中字段的位置。例如,在Locale.US区域设置下格式化数字1234567.89,如果给定的fieldPositionNumberFormat.INTEGER_FIELD,则fieldPosition的开始索引和结束索引将分别设置为0和9,输出字符串为1,234,567.89
      返回:
      格式化后的数字字符串
      抛出:
      NullPointerException - 如果resultfieldPositionnull
      ArithmeticException - 如果需要四舍五入且四舍五入模式设置为RoundingMode.UNNECESSARY
      参见:
    • format

      public StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition)
      格式化长整型以生成字符串。
      指定者:
      format 在类 NumberFormat
      参数:
      number - 要格式化的长整型数
      result - 要附加文本的位置
      fieldPosition - 跟踪返回字符串中字段的位置。例如,在Locale.US区域设置下格式化数字123456789,如果给定的fieldPositionNumberFormat.INTEGER_FIELD,则fieldPosition的开始索引和结束索引将分别设置为0和11,输出字符串为123,456,789
      返回:
      格式化后的数字字符串
      抛出:
      NullPointerException - 如果resultfieldPositionnull
      ArithmeticException - 如果需要四舍五入且四舍五入模式设置为RoundingMode.UNNECESSARY
      参见:
    • formatToCharacterIterator

      public AttributedCharacterIterator formatToCharacterIterator(Object obj)
      格式化对象以生成AttributedCharacterIterator。您可以使用返回的AttributedCharacterIterator来构建结果字符串,以及确定有关结果字符串的信息。

      AttributedCharacterIterator的每个属性键将是NumberFormat.Field类型,属性值与属性键相同。

      覆盖:
      formatToCharacterIterator 在类 Format
      参数:
      obj - 要格式化的对象
      返回:
      描述格式化值的AttributedCharacterIterator。
      抛出:
      NullPointerException - 如果obj为null。
      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返回。这包括具有小数部分、无限值、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 - 如果textpos为null。
      参见:
    • getDecimalFormatSymbols

      public DecimalFormatSymbols getDecimalFormatSymbols()
      返回十进制格式符号的副本,通常不会被程序员或用户更改。
      返回:
      所需DecimalFormatSymbols的副本
      参见:
    • setDecimalFormatSymbols

      public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols)
      设置十进制格式符号,通常不会被程序员或用户更改。
      参数:
      newSymbols - 所需的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

      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

      public Object clone()
      标准覆盖;语义不变。
      覆盖:
      clone 在类 NumberFormat
      返回:
      此实例的克隆。
      参见:
    • equals

      public boolean equals(Object obj)
      覆盖equals
      覆盖:
      equals 在类 NumberFormat
      参数:
      obj - 要比较的参考对象。
      返回:
      如果此对象与obj参数相同,则为true;否则为false
      参见:
    • hashCode

      public int hashCode()
      覆盖hashCode
      覆盖:
      hashCode 在类 NumberFormat
      返回:
      此对象的哈希码值。
      参见:
    • toPattern

      public String toPattern()
      合成表示此Format对象当前状态的模式字符串。
      返回:
      一个模式字符串
      参见:
    • toLocalizedPattern

      public String toLocalizedPattern()
      合成表示此Format对象当前状态的本地化模式字符串。
      返回:
      一个本地化模式字符串
      参见:
    • applyPattern

      public void applyPattern(String pattern)
      将给定的模式应用于此Format对象。模式是各种格式化属性的简写规范。这些属性也可以通过各种setter方法单独更改。

      此例程设置的整数位数没有限制,因为这是典型的最终用户需求;如果要设置实际值,请使用setMaximumInteger。对于负数,请使用分号分隔的第二个模式

      示例"#,#00.0#" → 1,234.56

      这意味着最少2个整数位,1个小数位和最多2个小数位。

      示例:"#,#00.0#;(#,#00.0#)"用于括号中的负数。

      在负数模式中,最小和最大计数将被忽略;这些被假定在正数模式中设置。

      参数:
      pattern - 新模式
      抛出:
      NullPointerException - 如果pattern为null
      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为null
      IllegalArgumentException - 如果给定的模式无效。
    • setMaximumIntegerDigits

      public void setMaximumIntegerDigits(int newValue)
      设置数字整数部分中允许的最大位数。对于除BigIntegerBigDecimal对象之外的数字格式,将使用newValue和309中的较小值。负输入值将替换为0。
      覆盖:
      setMaximumIntegerDigits 在类 NumberFormat
      参数:
      newValue - 要显示的整数位数的最大值;如果小于零,则使用零。具体子类可能会强制执行适合被格式化的数字类型的此值的上限。
      参见:
    • setMinimumIntegerDigits

      public void setMinimumIntegerDigits(int newValue)
      设置数字整数部分中允许的最小位数。对于除BigIntegerBigDecimal对象之外的数字格式,将使用newValue和309中的较小值。负输入值将替换为0。
      覆盖:
      setMinimumIntegerDigits 在类 NumberFormat
      参数:
      newValue - 要显示的整数位数的最小值;如果小于零,则使用零。具体子类可能会强制执行适合被格式化的数字类型的此值的上限。
      参见:
    • setMaximumFractionDigits

      public void setMaximumFractionDigits(int newValue)
      设置数字小数部分允许的最大位数。对于除BigIntegerBigDecimal对象之外的数字进行格式化,将使用newValue和340的较小值。负输入值将被替换为0。
      覆盖:
      setMaximumFractionDigits 在类中 NumberFormat
      参数:
      newValue - 要显示的小数位数的最大值;如果小于零,则使用零。具体的子类可能会强制执行适用于正在格式化的数值类型的此值的上限。
      参见:
    • setMinimumFractionDigits

      public void setMinimumFractionDigits(int newValue)
      设置数字小数部分允许的最小位数。对于除BigIntegerBigDecimal对象之外的数字进行格式化,将使用newValue和340的较小值。负输入值将被替换为0。
      覆盖:
      setMinimumFractionDigits 在类中 NumberFormat
      参数:
      newValue - 要显示的小数位数的最小值;如果小于零,则使用零。具体的子类可能会强制执行适用于正在格式化的数值类型的此值的上限。
      参见:
    • getMaximumIntegerDigits

      public int getMaximumIntegerDigits()
      获取数字整数部分允许的最大位数。对于除BigIntegerBigDecimal对象之外的数字进行格式化,将使用返回值和309的较小值。
      覆盖:
      getMaximumIntegerDigits 在类中 NumberFormat
      返回:
      最大位数
      参见:
    • getMinimumIntegerDigits

      public int getMinimumIntegerDigits()
      获取数字整数部分允许的最小位数。对于除BigIntegerBigDecimal对象之外的数字进行格式化,将使用返回值和309的较小值。
      覆盖:
      getMinimumIntegerDigits 在类中 NumberFormat
      返回:
      最小位数
      参见:
    • getMaximumFractionDigits

      public int getMaximumFractionDigits()
      获取数字小数部分允许的最大位数。对于除BigIntegerBigDecimal对象之外的数字进行格式化,将使用返回值和340的较小值。
      覆盖:
      getMaximumFractionDigits 在类中 NumberFormat
      返回:
      最大位数。
      参见:
    • getMinimumFractionDigits

      public int getMinimumFractionDigits()
      获取数字小数部分允许的最小位数。对于除BigIntegerBigDecimal对象之外的数字进行格式化,将使用返回值和340的较小值。
      覆盖:
      getMinimumFractionDigits 在类中 NumberFormat
      返回:
      最小位数
      参见:
    • getCurrency

      public Currency getCurrency()
      获取此十进制格式在格式化货币值时使用的货币。通过在此数字格式的符号上调用DecimalFormatSymbols.getCurrency来获取货币。
      覆盖:
      getCurrency 在类中 NumberFormat
      返回:
      此十进制格式使用的货币,或null
      自:
      1.4
    • setCurrency

      public void setCurrency(Currency currency)
      设置此数字格式在格式化货币值时使用的货币。这不会更新数字格式使用的小数位数的最小值或最大值。通过在此数字格式的符号上调用DecimalFormatSymbols.setCurrency来设置货币。
      覆盖:
      setCurrency 在类中 NumberFormat
      参数:
      currency - 要被此十进制格式使用的新货币
      抛出:
      NullPointerException - 如果currency为null
      自:
      1.4
    • getRoundingMode

      public RoundingMode getRoundingMode()
      获取此DecimalFormat中使用的RoundingMode
      覆盖:
      getRoundingMode 在类中 NumberFormat
      返回:
      此DecimalFormat使用的RoundingMode
      自:
      1.6
      参见:
    • setRoundingMode

      public void setRoundingMode(RoundingMode roundingMode)
      设置此DecimalFormat中使用的RoundingMode
      覆盖:
      setRoundingMode 在类中 NumberFormat
      参数:
      roundingMode - 要使用的RoundingMode
      抛出:
      NullPointerException - 如果roundingMode为null。
      自:
      1.6
      参见: