Class NumberFormatterSettings<T extends NumberFormatterSettings<?>>

    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      T decimal​(NumberFormatter.DecimalSeparatorDisplay style)
      Sets the decimal separator display strategy.
      boolean equals​(java.lang.Object other)
      T grouping​(Grouper grouper)
      Deprecated.
      ICU 60 This API is technical preview; see #7861.
      int hashCode()
      T integerWidth​(IntegerWidth style)
      Specifies the minimum and maximum number of digits to render before the decimal mark.
      T macros​(com.ibm.icu.impl.number.MacroProps macros)
      Deprecated.
      ICU 60 This API is ICU internal only.
      T notation​(Notation notation)
      Specifies the notation style (simple, scientific, or compact) for rendering numbers.
      T padding​(com.ibm.icu.impl.number.Padder padder)
      Deprecated.
      ICU 60 This API is ICU internal only.
      T rounding​(Rounder rounder)
      Specifies the rounding strategy to use when formatting numbers.
      T sign​(NumberFormatter.SignDisplay style)
      Sets the plus/minus sign display strategy.
      T symbols​(DecimalFormatSymbols symbols)
      Specifies the symbols (decimal separator, grouping separator, percent sign, numerals, etc.) to use when rendering numbers.
      T symbols​(NumberingSystem ns)
      Specifies that the given numbering system should be used when fetching symbols.
      T threshold​(java.lang.Long threshold)
      Deprecated.
      ICU 60 This API is ICU internal only.
      T unit​(MeasureUnit unit)
      Specifies the unit (unit of measure, currency, or percent) to associate with rendered numbers.
      T unitWidth​(NumberFormatter.UnitWidth style)
      Sets the width of the unit (measure unit or currency).
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • notation

        public T notation​(Notation notation)
        Specifies the notation style (simple, scientific, or compact) for rendering numbers.
        • Simple notation: "12,300"
        • Scientific notation: "1.23E4"
        • Compact notation: "12K"

        All notation styles will be properly localized with locale data, and all notation styles are compatible with units, rounding strategies, and other number formatter settings.

        Pass this method the return value of a Notation factory method. For example:

         NumberFormatter.with().notation(Notation.compactShort())
         
        The default is to use simple notation.
        Parameters:
        notation - The notation strategy to use.
        Returns:
        The fluent chain.
        See Also:
        Notation
      • unit

        public T unit​(MeasureUnit unit)
        Specifies the unit (unit of measure, currency, or percent) to associate with rendered numbers.
        • Unit of measure: "12.3 meters"
        • Currency: "$12.30"
        • Percent: "12.3%"

        Note: The unit can also be specified by passing a Measure to LocalizedNumberFormatter.format(Measure). Units specified via the format method take precedence over units specified here. This setter is designed for situations when the unit is constant for the duration of the number formatting process.

        All units will be properly localized with locale data, and all units are compatible with notation styles, rounding strategies, and other number formatter settings.

        Pass this method any instance of MeasureUnit. For units of measure:

         NumberFormatter.with().unit(MeasureUnit.METER)
         
        Currency:
         NumberFormatter.with().unit(Currency.getInstance("USD"))
         
        Percent:
         NumberFormatter.with().unit(NoUnit.PERCENT)
         
        The default is to render without units (equivalent to NoUnit.BASE).
        Parameters:
        unit - The unit to render.
        Returns:
        The fluent chain.
        See Also:
        MeasureUnit, Currency, NoUnit
      • rounding

        public T rounding​(Rounder rounder)
        Specifies the rounding strategy to use when formatting numbers.
        • Round to 3 decimal places: "3.142"
        • Round to 3 significant figures: "3.14"
        • Round to the closest nickel: "3.15"
        • Do not perform rounding: "3.1415926..."

        Pass this method the return value of one of the factory methods on Rounder. For example:

         NumberFormatter.with().rounding(Rounder.fixedFraction(2))
         

        In most cases, the default rounding strategy is to round to 6 fraction places; i.e., Rounder.maxFraction(6). The exceptions are if compact notation is being used, then the compact notation rounding strategy is used (see Notation.compactShort() for details), or if the unit is a currency, then standard currency rounding is used, which varies from currency to currency (see Rounder.currency(com.ibm.icu.util.Currency.CurrencyUsage) for details).

        Parameters:
        rounder - The rounding strategy to use.
        Returns:
        The fluent chain.
        See Also:
        Rounder
      • grouping

        @Deprecated
        public T grouping​(Grouper grouper)
        Deprecated.
        ICU 60 This API is technical preview; see #7861.
        Specifies the grouping strategy to use when formatting numbers.
        • Default grouping: "12,300" and "1,230"
        • Grouping with at least 2 digits: "12,300" and "1230"
        • No grouping: "12300" and "1230"

        The exact grouping widths will be chosen based on the locale.

        Pass this method the return value of one of the factory methods on Grouper. For example:

         NumberFormatter.with().grouping(Grouper.min2())
         
        The default is to perform grouping without concern for the minimum grouping digits.
        Parameters:
        grouper - The grouping strategy to use.
        Returns:
        The fluent chain.
        See Also:
        Grouper, Notation
      • integerWidth

        public T integerWidth​(IntegerWidth style)
        Specifies the minimum and maximum number of digits to render before the decimal mark.
        • Zero minimum integer digits: ".08"
        • One minimum integer digit: "0.08"
        • Two minimum integer digits: "00.08"

        Pass this method the return value of IntegerWidth.zeroFillTo(int). For example:

         NumberFormatter.with().integerWidth(IntegerWidth.zeroFillTo(2))
         
        The default is to have one minimum integer digit.
        Parameters:
        style - The integer width to use.
        Returns:
        The fluent chain.
        See Also:
        IntegerWidth
      • symbols

        public T symbols​(DecimalFormatSymbols symbols)
        Specifies the symbols (decimal separator, grouping separator, percent sign, numerals, etc.) to use when rendering numbers.
        • en_US symbols: "12,345.67"
        • fr_FR symbols: "12 345,67"
        • de_CH symbols: "12’345.67"
        • my_MY symbols: "၁၂,၃၄၅.၆၇"

        Pass this method an instance of DecimalFormatSymbols. For example:

         NumberFormatter.with().symbols(DecimalFormatSymbols.getInstance(new ULocale("de_CH")))
         

        Note: DecimalFormatSymbols automatically chooses the best numbering system based on the locale. In the examples above, the first three are using the Latin numbering system, and the fourth is using the Myanmar numbering system.

        Note: The instance of DecimalFormatSymbols will be copied: changes made to the symbols object after passing it into the fluent chain will not be seen.

        Note: Calling this method will override the NumberingSystem previously specified in symbols(NumberingSystem).

        The default is to choose the symbols based on the locale specified in the fluent chain.

        Parameters:
        symbols - The DecimalFormatSymbols to use.
        Returns:
        The fluent chain.
        See Also:
        DecimalFormatSymbols
      • symbols

        public T symbols​(NumberingSystem ns)
        Specifies that the given numbering system should be used when fetching symbols.
        • Latin numbering system: "12,345"
        • Myanmar numbering system: "၁၂,၃၄၅"
        • Math Sans Bold numbering system: "𝟭𝟮,𝟯𝟰𝟱"

        Pass this method an instance of NumberingSystem. For example, to force the locale to always use the Latin alphabet numbering system (ASCII digits):

         NumberFormatter.with().symbols(NumberingSystem.LATIN)
         

        Note: Calling this method will override the DecimalFormatSymbols previously specified in symbols(DecimalFormatSymbols).

        The default is to choose the best numbering system for the locale.

        Parameters:
        ns - The NumberingSystem to use.
        Returns:
        The fluent chain.
        See Also:
        NumberingSystem
      • unitWidth

        public T unitWidth​(NumberFormatter.UnitWidth style)
        Sets the width of the unit (measure unit or currency). Most common values:
        • Short: "$12.00", "12 m"
        • ISO Code: "USD 12.00"
        • Full name: "12.00 US dollars", "12 meters"

        Pass an element from the NumberFormatter.UnitWidth enum to this setter. For example:

         NumberFormatter.with().unitWidth(UnitWidth.FULL_NAME)
         

        The default is the SHORT width.

        Parameters:
        style - The width to use when rendering numbers.
        Returns:
        The fluent chain
        See Also:
        NumberFormatter.UnitWidth
      • sign

        public T sign​(NumberFormatter.SignDisplay style)
        Sets the plus/minus sign display strategy. Most common values:
        • Auto: "123", "-123"
        • Always: "+123", "-123"
        • Accounting: "$123", "($123)"

        Pass an element from the NumberFormatter.SignDisplay enum to this setter. For example:

         NumberFormatter.with().sign(SignDisplay.ALWAYS)
         

        The default is AUTO sign display.

        Parameters:
        style - The sign display strategy to use when rendering numbers.
        Returns:
        The fluent chain
        See Also:
        NumberFormatter.SignDisplay
      • decimal

        public T decimal​(NumberFormatter.DecimalSeparatorDisplay style)
        Sets the decimal separator display strategy. This affects integer numbers with no fraction part. Most common values:
        • Auto: "1"
        • Always: "1."

        Pass an element from the NumberFormatter.DecimalSeparatorDisplay enum to this setter. For example:

         NumberFormatter.with().decimal(DecimalSeparatorDisplay.ALWAYS)
         

        The default is AUTO decimal separator display.

        Parameters:
        style - The decimal separator display strategy to use when rendering numbers.
        Returns:
        The fluent chain
        See Also:
        NumberFormatter.DecimalSeparatorDisplay
      • macros

        @Deprecated
        public T macros​(com.ibm.icu.impl.number.MacroProps macros)
        Deprecated.
        ICU 60 This API is ICU internal only.
        Internal method to set a starting macros.
      • padding

        @Deprecated
        public T padding​(com.ibm.icu.impl.number.Padder padder)
        Deprecated.
        ICU 60 This API is ICU internal only.
        Set the padding strategy. May be added to ICU 61; see #13338.
      • threshold

        @Deprecated
        public T threshold​(java.lang.Long threshold)
        Deprecated.
        ICU 60 This API is ICU internal only.
        Internal fluent setter to support a custom regulation threshold. A threshold of 1 causes the data structures to be built right away. A threshold of 0 prevents the data structures from being built.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object