ICU 60.3
60.3
|
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 | unit (const icu::MeasureUnit &unit) const |
Specifies the unit (unit of measure, currency, or percent) to associate with rendered numbers. More... | |
Derived | adoptUnit (const icu::MeasureUnit *unit) const |
Like unit(), but takes ownership of a pointer. More... | |
Derived | rounding (const Rounder &rounder) const |
Specifies the rounding strategy to use when formatting numbers. More... | |
Derived | grouping (const Grouper &grouper) const |
Specifies the grouping strategy to use when formatting numbers. More... | |
Derived | integerWidth (const IntegerWidth &style) const |
Specifies the minimum and maximum number of digits to render before the decimal mark. 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 | adoptSymbols (const NumberingSystem *symbols) const |
Specifies that the given numbering system should be used when fetching symbols. More... | |
Derived | unitWidth (const UNumberUnitWidth &width) const |
Sets the width of the unit (measure unit or currency). More... | |
Derived | sign (const UNumberSignDisplay &width) const |
Sets the plus/minus sign display strategy. More... | |
Derived | decimal (const UNumberDecimalSeparatorDisplay &width) const |
Sets the decimal separator display strategy. More... | |
Derived | padding (const impl::Padder &padder) const |
Set the padding strategy. More... | |
Derived | threshold (int32_t threshold) const |
Internal fluent setter to support a custom regulation threshold. More... | |
UBool | copyErrorTo (UErrorCode &outErrorCode) const |
Sets the UErrorCode if an error occurred in the fluent chain. More... | |
Protected Attributes | |
impl::MacroProps | fMacros |
Friends | |
class | LocalizedNumberFormatter |
class | UnlocalizedNumberFormatter |
An abstract base class for specifying settings related to number formatting.
This class is implemented by UnlocalizedNumberFormatter and LocalizedNumberFormatter.
Definition at line 1337 of file numberformatter.h.
Derived icu::number::NumberFormatterSettings< Derived >::adoptSymbols | ( | const 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 the DecimalFormatSymbols previously specified in symbols(DecimalFormatSymbols).
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 >::adoptUnit | ( | const 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.
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 1705 of file numberformatter.h.
Derived icu::number::NumberFormatterSettings< Derived >::decimal | ( | const UNumberDecimalSeparatorDisplay & | width | ) | 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.
width | The decimal separator display strategy to use when rendering numbers. |
Derived icu::number::NumberFormatterSettings< Derived >::grouping | ( | const Grouper & | grouper | ) | const |
Specifies the grouping strategy to use when formatting numbers.
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.
grouper | The grouping strategy to use. |
Do not use. This API is for internal use only.
Do not use. This API is for internal use only. ICU 60: This API is technical preview.
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(int). 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 >::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 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.
notation | The notation strategy to use. |
Derived icu::number::NumberFormatterSettings< Derived >::padding | ( | const impl::Padder & | padder | ) | const |
Set the padding strategy.
May be added to ICU 61; see #13338.
Derived icu::number::NumberFormatterSettings< Derived >::rounding | ( | const Rounder & | rounder | ) | const |
Specifies the rounding strategy to use when formatting numbers.
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 for details).
rounder | The rounding strategy to use. |
Derived icu::number::NumberFormatterSettings< Derived >::sign | ( | const UNumberSignDisplay & | width | ) | 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.
width | The sign display strategy to use when rendering numbers. |
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 the NumberingSystem previously specified in symbols(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 >::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 >::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 strategies, and other number formatter settings.
Pass this method any instance of MeasureUnit. For units of measure:
NumberFormatter.with().adoptUnit(MeasureUnit::createMeter(status))
Currency:
NumberFormatter.with()::unit(CurrencyUnit(u"USD", status))
Percent:
NumberFormatter.with()::unit(NoUnit.percent())
The default is to render without units (equivalent to NoUnit.base()).
unit | The unit to render. |
Derived icu::number::NumberFormatterSettings< Derived >::unitWidth | ( | const 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. |