ICU 63.1
63.1

An abstract base class for specifying settings related to number formatting. More...
#include <numberformatter.h>
Public Member Functions  
Derived  notation (const Notation ¬ation) const & 
Specifies the notation style (simple, scientific, or compact) for rendering numbers. More...  
Derived  notation (const Notation ¬ation) && 
Overload of notation() for use on an rvalue reference. More...  
Derived  unit (const icu::MeasureUnit &unit) const & 
Specifies the unit (unit of measure, currency, or percent) to associate with rendered numbers. More...  
Derived  unit (const icu::MeasureUnit &unit) && 
Overload of unit() for use on an rvalue reference. More...  
Derived  adoptUnit (icu::MeasureUnit *unit) const & 
Like unit(), but takes ownership of a pointer. More...  
Derived  adoptUnit (icu::MeasureUnit *unit) && 
Overload of adoptUnit() for use on an rvalue reference. More...  
Derived  perUnit (const icu::MeasureUnit &perUnit) const & 
Sets a unit to be used in the denominator. More...  
Derived  perUnit (const icu::MeasureUnit &perUnit) && 
Overload of perUnit() for use on an rvalue reference. More...  
Derived  adoptPerUnit (icu::MeasureUnit *perUnit) const & 
Like perUnit(), but takes ownership of a pointer. More...  
Derived  adoptPerUnit (icu::MeasureUnit *perUnit) && 
Overload of adoptPerUnit() for use on an rvalue reference. More...  
Derived  precision (const Precision &precision) const & 
Specifies the rounding precision to use when formatting numbers. More...  
Derived  precision (const Precision &precision) && 
Overload of precision() for use on an rvalue reference. More...  
Derived  rounding (const Rounder &rounder) const & 
Derived  roundingMode (UNumberFormatRoundingMode roundingMode) const & 
Specifies how to determine the direction to round a number when it has more digits than fit in the desired precision. More...  
Derived  roundingMode (UNumberFormatRoundingMode roundingMode) && 
Overload of roundingMode() for use on an rvalue reference. More...  
Derived  grouping (UNumberGroupingStrategy strategy) const & 
Specifies the grouping strategy to use when formatting numbers. More...  
Derived  grouping (UNumberGroupingStrategy strategy) && 
Overload of grouping() for use on an rvalue reference. More...  
Derived  integerWidth (const IntegerWidth &style) const & 
Specifies the minimum and maximum number of digits to render before the decimal mark. More...  
Derived  integerWidth (const IntegerWidth &style) && 
Overload of integerWidth() for use on an rvalue reference. More...  
Derived  symbols (const DecimalFormatSymbols &symbols) const & 
Specifies the symbols (decimal separator, grouping separator, percent sign, numerals, etc.) to use when rendering numbers. More...  
Derived  symbols (const DecimalFormatSymbols &symbols) && 
Overload of symbols() for use on an rvalue reference. More...  
Derived  adoptSymbols (NumberingSystem *symbols) const & 
Specifies that the given numbering system should be used when fetching symbols. More...  
Derived  adoptSymbols (NumberingSystem *symbols) && 
Overload of adoptSymbols() for use on an rvalue reference. More...  
Derived  unitWidth (UNumberUnitWidth width) const & 
Sets the width of the unit (measure unit or currency). More...  
Derived  unitWidth (UNumberUnitWidth width) && 
Overload of unitWidth() for use on an rvalue reference. More...  
Derived  sign (UNumberSignDisplay style) const & 
Sets the plus/minus sign display strategy. More...  
Derived  sign (UNumberSignDisplay style) && 
Overload of sign() for use on an rvalue reference. More...  
Derived  decimal (UNumberDecimalSeparatorDisplay style) const & 
Sets the decimal separator display strategy. More...  
Derived  decimal (UNumberDecimalSeparatorDisplay style) && 
Overload of decimal() for use on an rvalue reference. More...  
Derived  scale (const Scale &scale) const & 
Sets a scale (multiplier) to be used to scale the number by an arbitrary amount before formatting. More...  
Derived  scale (const Scale &scale) && 
Overload of scale() for use on an rvalue reference. More...  
Derived  padding (const impl::Padder &padder) const & 
Set the padding strategy. More...  
Derived  padding (const impl::Padder &padder) && 
Derived  threshold (int32_t threshold) const & 
Internal fluent setter to support a custom regulation threshold. More...  
Derived  threshold (int32_t threshold) && 
Derived  macros (const impl::MacroProps ¯os) const & 
Internal fluent setter to overwrite the entire macros object. More...  
Derived  macros (const impl::MacroProps ¯os) && 
Derived  macros (impl::MacroProps &¯os) const & 
Derived  macros (impl::MacroProps &¯os) && 
UnicodeString  toSkeleton (UErrorCode &status) const 
Creates a skeleton string representation of this number formatter. More...  
UBool  copyErrorTo (UErrorCode &outErrorCode) const 
Sets the UErrorCode if an error occurred in the fluent chain. More...  
Friends  
class  LocalizedNumberFormatter 
class  UnlocalizedNumberFormatter 
class  impl::NumberRangeFormatterImpl 
void  impl::touchRangeLocales (impl::RangeMacroProps ¯os) 
An abstract base class for specifying settings related to number formatting.
This class is implemented by UnlocalizedNumberFormatter and LocalizedNumberFormatter. This class is not intended for public subclassing.
Definition at line 1488 of file numberformatter.h.
Derived icu::number::NumberFormatterSettings< Derived >::adoptPerUnit  (  icu::MeasureUnit *  perUnit  )  const & 
Like perUnit(), but takes ownership of a pointer.
Convenient for use with the MeasureFormat factory methods, which return pointers that need ownership. Example:
NumberFormatter::with() .adoptUnit(MeasureUnit::createMeter(status)) .adoptPerUnit(MeasureUnit::createSecond(status))
perUnit  The unit to render in the denominator. 
Derived icu::number::NumberFormatterSettings< Derived >::adoptPerUnit  (  icu::MeasureUnit *  perUnit  )  && 
Overload of adoptPerUnit() for use on an rvalue reference.
perUnit  The unit to render in the denominator. 
Derived icu::number::NumberFormatterSettings< Derived >::adoptSymbols  (  NumberingSystem *  symbols  )  const & 
Specifies that the given numbering system should be used when fetching symbols.
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().adoptSymbols(NumberingSystem::createInstanceByName("latn", status))
Note: Calling this method will override any previously specified DecimalFormatSymbols or NumberingSystem.
The default is to choose the best numbering system for the locale.
This method takes ownership of a pointer in order to work nicely with the NumberingSystem factory methods.
symbols  The NumberingSystem to use. 
Derived icu::number::NumberFormatterSettings< Derived >::adoptSymbols  (  NumberingSystem *  symbols  )  && 
Overload of adoptSymbols() for use on an rvalue reference.
symbols  The NumberingSystem to use. 
Derived icu::number::NumberFormatterSettings< Derived >::adoptUnit  (  icu::MeasureUnit *  unit  )  const & 
Like unit(), but takes ownership of a pointer.
Convenient for use with the MeasureFormat factory methods, which return pointers that need ownership. Example:
NumberFormatter::with().adoptUnit(MeasureUnit::createMeter(status))
unit  The unit to render. 
Derived icu::number::NumberFormatterSettings< Derived >::adoptUnit  (  icu::MeasureUnit *  unit  )  && 
Overload of adoptUnit() for use on an rvalue reference.
unit  The unit to render. 

inline 
Sets the UErrorCode if an error occurred in the fluent chain.
Preserves older error codes in the outErrorCode.
Definition at line 2149 of file numberformatter.h.
Referenced by icu::number::impl::RangeMacroProps::copyErrorTo().
Derived icu::number::NumberFormatterSettings< Derived >::decimal  (  UNumberDecimalSeparatorDisplay  style  )  const & 
Sets the decimal separator display strategy.
This affects integer numbers with no fraction part. Most common values:
Pass an element from the UNumberDecimalSeparatorDisplay enum to this setter. For example:
NumberFormatter::with().decimal(UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_ALWAYS)
The default is AUTO decimal separator display.
style  The decimal separator display strategy to use when rendering numbers. 
Derived icu::number::NumberFormatterSettings< Derived >::decimal  (  UNumberDecimalSeparatorDisplay  style  )  && 
Derived icu::number::NumberFormatterSettings< Derived >::grouping  (  UNumberGroupingStrategy  strategy  )  const & 
Specifies the grouping strategy to use when formatting numbers.
The exact grouping widths will be chosen based on the locale.
Pass this method an element from the UNumberGroupingStrategy enum. For example:
NumberFormatter::with().grouping(UNUM_GROUPING_MIN2)
The default is to perform grouping according to locale data; most locales, but not all locales, enable it by default.
strategy  The grouping strategy to use. 
Derived icu::number::NumberFormatterSettings< Derived >::grouping  (  UNumberGroupingStrategy  strategy  )  && 
Overload of grouping() for use on an rvalue reference.
strategy  The grouping strategy to use. 
Derived icu::number::NumberFormatterSettings< Derived >::integerWidth  (  const IntegerWidth &  style  )  const & 
Specifies the minimum and maximum number of digits to render before the decimal mark.
Pass this method the return value of IntegerWidth#zeroFillTo. For example:
NumberFormatter::with().integerWidth(IntegerWidth::zeroFillTo(2))
The default is to have one minimum integer digit.
style  The integer width to use. 
Derived icu::number::NumberFormatterSettings< Derived >::integerWidth  (  const IntegerWidth &  style  )  && 
Overload of integerWidth() for use on an rvalue reference.
style  The integer width to use. 
Derived icu::number::NumberFormatterSettings< Derived >::macros  (  const impl::MacroProps &  macros  )  const & 
Internal fluent setter to overwrite the entire macros object.
Derived icu::number::NumberFormatterSettings< Derived >::macros  (  const impl::MacroProps &  macros  )  && 
This API is for internal use only.
Derived icu::number::NumberFormatterSettings< Derived >::macros  (  impl::MacroProps &&  macros  )  const & 
This API is for internal use only.
Derived icu::number::NumberFormatterSettings< Derived >::macros  (  impl::MacroProps &&  macros  )  && 
This API is for internal use only.
Derived icu::number::NumberFormatterSettings< Derived >::notation  (  const Notation &  notation  )  const & 
Specifies the notation style (simple, scientific, or compact) for rendering numbers.
All notation styles will be properly localized with locale data, and all notation styles are compatible with units, rounding precisions, 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.
notation  The notation strategy to use. 
Derived icu::number::NumberFormatterSettings< Derived >::notation  (  const Notation &  notation  )  && 
Overload of notation() for use on an rvalue reference.
notation  The notation strategy to use. 
Derived icu::number::NumberFormatterSettings< Derived >::padding  (  const impl::Padder &  padder  )  const & 
Set the padding strategy.
May be added in the future; see #13338.
Derived icu::number::NumberFormatterSettings< Derived >::padding  (  const impl::Padder &  padder  )  && 
This API is for internal use only.
Derived icu::number::NumberFormatterSettings< Derived >::perUnit  (  const icu::MeasureUnit &  perUnit  )  const & 
Sets a unit to be used in the denominator.
For example, to format "3 m/s", pass METER to the unit and SECOND to the perUnit.
Pass this method any instance of MeasureUnit. Since MeasureUnit factory methods return pointers, the adoptPerUnit version of this method is often more useful.
The default is not to display any unit in the denominator.
If a perunit is specified without a primary unit via unit, the behavior is undefined.
perUnit  The unit to render in the denominator. 
Derived icu::number::NumberFormatterSettings< Derived >::perUnit  (  const icu::MeasureUnit &  perUnit  )  && 
Derived icu::number::NumberFormatterSettings< Derived >::precision  (  const Precision &  precision  )  const & 
Specifies the rounding precision to use when formatting numbers.
Pass this method the return value of one of the factory methods on Precision. For example:
NumberFormatter::with().precision(Precision::fixedFraction(2))
In most cases, the default rounding strategy is to round to 6 fraction places; i.e., Precision.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 Precision#currency for details).
precision  The rounding precision to use. 
Derived icu::number::NumberFormatterSettings< Derived >::precision  (  const Precision &  precision  )  && 
Overload of precision() for use on an rvalue reference.
precision  The rounding precision to use. 

inline 
Definition at line 1724 of file numberformatter.h.
Derived icu::number::NumberFormatterSettings< Derived >::roundingMode  (  UNumberFormatRoundingMode  roundingMode  )  const & 
Specifies how to determine the direction to round a number when it has more digits than fit in the desired precision.
When formatting 1.235:
The default is HALF_EVEN. For more information on rounding mode, see the ICU userguide here:
http://userguide.icuproject.org/formatparse/numbers/roundingmodes
roundingMode  The rounding mode to use. 
Derived icu::number::NumberFormatterSettings< Derived >::roundingMode  (  UNumberFormatRoundingMode  roundingMode  )  && 
Overload of roundingMode() for use on an rvalue reference.
roundingMode  The rounding mode to use. 
Derived icu::number::NumberFormatterSettings< Derived >::scale  (  const Scale &  scale  )  const & 
Sets a scale (multiplier) to be used to scale the number by an arbitrary amount before formatting.
Most common values:
Pass an element from a Scale factory method to this setter. For example:
NumberFormatter::with().scale(Scale::powerOfTen(2))
The default is to not apply any multiplier.
scale  The scale to apply when rendering numbers. 
Derived icu::number::NumberFormatterSettings< Derived >::scale  (  const Scale &  scale  )  && 
Derived icu::number::NumberFormatterSettings< Derived >::sign  (  UNumberSignDisplay  style  )  const & 
Sets the plus/minus sign display strategy.
Most common values:
Pass an element from the UNumberSignDisplay enum to this setter. For example:
NumberFormatter::with().sign(UNumberSignDisplay::UNUM_SIGN_ALWAYS)
The default is AUTO sign display.
style  The sign display strategy to use when rendering numbers. 
Derived icu::number::NumberFormatterSettings< Derived >::sign  (  UNumberSignDisplay  style  )  && 
Derived icu::number::NumberFormatterSettings< Derived >::symbols  (  const DecimalFormatSymbols &  symbols  )  const & 
Specifies the symbols (decimal separator, grouping separator, percent sign, numerals, etc.) to use when rendering numbers.
Pass this method an instance of DecimalFormatSymbols. For example:
NumberFormatter::with().symbols(DecimalFormatSymbols(Locale("de_CH"), status))
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 any previously specified DecimalFormatSymbols or NumberingSystem.
The default is to choose the symbols based on the locale specified in the fluent chain.
symbols  The DecimalFormatSymbols to use. 
Derived icu::number::NumberFormatterSettings< Derived >::symbols  (  const DecimalFormatSymbols &  symbols  )  && 
Overload of symbols() for use on an rvalue reference.
symbols  The DecimalFormatSymbols to use. 
Derived icu::number::NumberFormatterSettings< Derived >::threshold  (  int32_t  threshold  )  const & 
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.
Derived icu::number::NumberFormatterSettings< Derived >::threshold  (  int32_t  threshold  )  && 
This API is for internal use only.
UnicodeString icu::number::NumberFormatterSettings< Derived >::toSkeleton  (  UErrorCode &  status  )  const 
Creates a skeleton string representation of this number formatter.
A skeleton string is a localeagnostic serialized form of a number formatter.
Not all options are capable of being represented in the skeleton string; for example, a DecimalFormatSymbols object. If any such option is encountered, the error code is set to U_UNSUPPORTED_ERROR.
The returned skeleton is in normalized form, such that two number formatters with equivalent behavior should produce the same skeleton.
Derived icu::number::NumberFormatterSettings< Derived >::unit  (  const icu::MeasureUnit &  unit  )  const & 
Specifies the unit (unit of measure, currency, or percent) to associate with rendered numbers.
All units will be properly localized with locale data, and all units are compatible with notation styles, rounding precisions, and other number formatter settings.
Pass this method any instance of MeasureUnit. For units of measure (which often involve the factory methods that return a pointer):
NumberFormatter::with().adoptUnit(MeasureUnit::createMeter(status))
Currency:
NumberFormatter::with().unit(CurrencyUnit(u"USD", status))
Percent:
NumberFormatter::with().unit(NoUnit.percent())
See perUnit for information on how to format strings like "5 meters per second".
The default is to render without units (equivalent to NoUnit.base()).
unit  The unit to render. 
Derived icu::number::NumberFormatterSettings< Derived >::unit  (  const icu::MeasureUnit &  unit  )  && 
Derived icu::number::NumberFormatterSettings< Derived >::unitWidth  (  UNumberUnitWidth  width  )  const & 
Sets the width of the unit (measure unit or currency).
Most common values:
Pass an element from the UNumberUnitWidth enum to this setter. For example:
NumberFormatter::with().unitWidth(UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME)
The default is the SHORT width.
width  The width to use when rendering numbers. 
Derived icu::number::NumberFormatterSettings< Derived >::unitWidth  (  UNumberUnitWidth  width  )  && 
Overload of unitWidth() for use on an rvalue reference.
width  The width to use when rendering numbers. 