Loading...
Searching...
No Matches
icu::DecimalFormatSymbols Class Reference

This class represents the set of symbols needed by DecimalFormat to format numbers. More...

`#include <dcfmtsym.h>`

Inheritance diagram for icu::DecimalFormatSymbols:

## Public Types

enum

ENumberFormatSymbol {
kDecimalSeparatorSymbol , kGroupingSeparatorSymbol , kPatternSeparatorSymbol , kPercentSymbol ,
kZeroDigitSymbol , kDigitSymbol , kMinusSignSymbol , kPlusSignSymbol ,
kCurrencySymbol , kIntlCurrencySymbol , kMonetarySeparatorSymbol , kExponentialSymbol ,
kPerMillSymbol , kPadEscapeSymbol , kInfinitySymbol , kNaNSymbol ,
kSignificantDigitSymbol , kMonetaryGroupingSeparatorSymbol , kOneDigitSymbol , kTwoDigitSymbol ,
kThreeDigitSymbol , kFourDigitSymbol , kFiveDigitSymbol , kSixDigitSymbol ,
kSevenDigitSymbol , kEightDigitSymbol , kNineDigitSymbol , kExponentMultiplicationSymbol ,
kApproximatelySignSymbol , kFormatSymbolCount = kExponentMultiplicationSymbol + 2
}

| Constants for specifying a number format symbol. More...

## Public Member Functions

U_I18N_API | DecimalFormatSymbols (const Locale &locale, UErrorCode &status)
| Create a DecimalFormatSymbols object for the given locale.
U_I18N_API | DecimalFormatSymbols (const Locale &locale, const NumberingSystem &ns, UErrorCode &status)
| Creates a DecimalFormatSymbols instance for the given locale with digits and symbols corresponding to the given NumberingSystem.
U_I18N_API | DecimalFormatSymbols (UErrorCode &status)
| Create a DecimalFormatSymbols object for the default locale.
U_I18N_API | DecimalFormatSymbols (const DecimalFormatSymbols &)
| Copy constructor.
U_I18N_API DecimalFormatSymbols & | operator= (const DecimalFormatSymbols &)
| Assignment operator.
virtual U_I18N_API | ~DecimalFormatSymbols ()
| Destructor.
U_I18N_API bool | operator== (const DecimalFormatSymbols &other) const
| Return true if another object is semantically equal to this one.
U_I18N_API bool | operator!= (const DecimalFormatSymbols &other) const
| Return true if another object is semantically unequal to this one.
U_I18N_API UnicodeString | getSymbol (ENumberFormatSymbol symbol) const
| Get one of the format symbols by its enum constant.
U_I18N_API void | setSymbol (ENumberFormatSymbol symbol, const UnicodeString &value, const UBool propagateDigits)
| Set one of the format symbols by its enum constant.
U_I18N_API void | setCurrency (const char16_t *currency, UErrorCode &status)
| Loads symbols for the specified currency into this instance.
U_I18N_API Locale | getLocale () const
| Returns the locale for which this object was constructed.
U_I18N_API Locale | getLocale (ULocDataLocaleType type, UErrorCode &status) const
| Returns the locale for this object.
U_I18N_API const UnicodeString & | getPatternForCurrencySpacing (UCurrencySpacing type, UBool beforeCurrency, UErrorCode &status) const
| Get pattern string for 'CurrencySpacing' that can be applied to currency format.
U_I18N_API void | setPatternForCurrencySpacing (UCurrencySpacing type, UBool beforeCurrency, const UnicodeString &pattern)
| Set pattern string for 'CurrencySpacing' that can be applied to currency format.
virtual U_I18N_API UClassID | getDynamicClassID () const override
| ICU "poor man's RTTI", returns a UClassID for the actual class.
U_I18N_API UBool | isCustomCurrencySymbol () const
U_I18N_API UBool | isCustomIntlCurrencySymbol () const
U_I18N_API UChar32 | getCodePointZero () const
U_I18N_API const UnicodeString & | getConstSymbol (ENumberFormatSymbol symbol) const
| Internal function - more efficient version of getSymbol, returning a const reference to one of the symbol strings.
U_I18N_API const UnicodeString & | getConstDigitSymbol (int32_t digit) const
| Returns the const UnicodeString reference, like getConstSymbol, corresponding to the digit with the given value.
U_I18N_API const char16_t * | getCurrencyPattern () const
| Returns that pattern stored in currency info.
U_I18N_API const char * | getNumberingSystemName () const
| Returns the numbering system with which this DecimalFormatSymbols was initialized.
Public Member Functions inherited from icu::UObject
virtual | ~UObject ()
| Destructor.

## Static Public Member Functions

static U_I18N_API DecimalFormatSymbols * | createWithLastResortData (UErrorCode &status)
| Creates a DecimalFormatSymbols object with last-resort data.
static U_I18N_API UClassID | getStaticClassID ()
| ICU "poor man's RTTI", returns a UClassID for this class.

## Detailed Description

This class represents the set of symbols needed by DecimalFormat to format numbers.

DecimalFormat creates for itself an instance of DecimalFormatSymbols from its locale data. If you need to change any of these symbols, you can get the DecimalFormatSymbols object from your DecimalFormat and modify it.

Here are the special characters used in the parts of the subpattern, with notes on their usage.

    Symbol   Meaning
      0      a digit
      #      a digit, zero shows as absent
      .      placeholder for decimal separator
      ,      placeholder for grouping separator.
      ;      separates formats.
      -      default negative prefix.
      %      divide by 100 and show as percentage
      X      any other characters can be used in the prefix or suffix
      '      used to quote special characters in a prefix or suffix.

[Notes]

If there is no explicit negative subpattern, - is prefixed to the positive form. That is, "0.00" alone is equivalent to "0.00;-0.00".

The grouping separator is commonly used for thousands, but in some countries for ten-thousands. The interval is a constant number of digits between the grouping characters, such as 100,000,000 or 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. So "#,##,###,####" == "######,####" == "##,####,####".

Definition at line 86 of file dcfmtsym.h.

## Member Enumeration Documentation

## ENumberFormatSymbol

enum icu::DecimalFormatSymbols::ENumberFormatSymbol

Constants for specifying a number format symbol.

Stable
  ICU 2.0

Enumerator
kDecimalSeparatorSymbol | The decimal separator.
kGroupingSeparatorSymbol | The grouping separator.
kPatternSeparatorSymbol | The pattern separator.
kPercentSymbol | The percent sign.
kZeroDigitSymbol | Zero.
kDigitSymbol | Character representing a digit in the pattern.
kMinusSignSymbol | The minus sign.
kPlusSignSymbol | The plus sign.
kCurrencySymbol | The currency symbol.
kIntlCurrencySymbol | The international currency symbol.
kMonetarySeparatorSymbol | The monetary separator.
kExponentialSymbol | The exponential symbol.
kPerMillSymbol | Per mill symbol - replaces kPermillSymbol.
kPadEscapeSymbol | Escape padding character.
kInfinitySymbol | Infinity symbol.
kNaNSymbol | Nan symbol.

kSignificantDigitSymbol

Significant digit symbol.

Stable
  ICU 3.0

kMonetaryGroupingSeparatorSymbol

The monetary grouping separator.

Stable
  ICU 3.6

kOneDigitSymbol

One.

Stable
  ICU 4.6

kTwoDigitSymbol

Two.

Stable
  ICU 4.6

kThreeDigitSymbol

Three.

Stable
  ICU 4.6

kFourDigitSymbol

Four.

Stable
  ICU 4.6

kFiveDigitSymbol

Five.

Stable
  ICU 4.6

kSixDigitSymbol

Six.

Stable
  ICU 4.6

kSevenDigitSymbol

Seven.

Stable
  ICU 4.6

kEightDigitSymbol

Eight.

Stable
  ICU 4.6

kNineDigitSymbol

Nine.

Stable
  ICU 4.6

kExponentMultiplicationSymbol

Multiplication sign.

Stable
  ICU 54

kApproximatelySignSymbol

Approximately sign.

Internal
  Do not use. This API is for internal use only.

kFormatSymbolCount | count symbol constants

Definition at line 92 of file dcfmtsym.h.

## Constructor & Destructor Documentation

## DecimalFormatSymbols() [1/4]

U_I18N_API icu::DecimalFormatSymbols::DecimalFormatSymbols | ( | const Locale & | locale,
|  | UErrorCode & | status )

Create a DecimalFormatSymbols object for the given locale.

Parameters

  locale | The locale to get symbols for.
  status | Input/output parameter, set to success or failure code upon return.

Stable
  ICU 2.0

References U_I18N_API.

Referenced by createWithLastResortData(), DecimalFormatSymbols(), getStaticClassID(), operator!=(), operator=(), and operator==().

## DecimalFormatSymbols() [2/4]

U_I18N_API icu::DecimalFormatSymbols::DecimalFormatSymbols | ( | const Locale & | locale,
|  | const NumberingSystem & | ns,
|  | UErrorCode & | status )

Creates a DecimalFormatSymbols instance for the given locale with digits and symbols corresponding to the given NumberingSystem.

This constructor behaves equivalently to the normal constructor called with a locale having a "numbers=xxxx" keyword specifying the numbering system by name.

In this constructor, the NumberingSystem argument will be used even if the locale has its own "numbers=xxxx" keyword.

Parameters

  locale | The locale to get symbols for.
  ns | The numbering system.
  status | Input/output parameter, set to success or failure code upon return.

Stable
  ICU 60

References U_I18N_API.

## DecimalFormatSymbols() [3/4]

U_I18N_API icu::DecimalFormatSymbols::DecimalFormatSymbols | ( | UErrorCode & | status | ) |

Create a DecimalFormatSymbols object for the default locale.

This constructor will not fail. If the resource file data is not available, it will use hard-coded last-resort data and set status to U_USING_FALLBACK_ERROR.

Parameters

  status | Input/output parameter, set to success or failure code upon return.

Stable
  ICU 2.0

References U_I18N_API.

## DecimalFormatSymbols() [4/4]

U_I18N_API icu::DecimalFormatSymbols::DecimalFormatSymbols | ( | const DecimalFormatSymbols & |  | ) |

Copy constructor.

Stable
  ICU 2.0

References DecimalFormatSymbols(), and U_I18N_API.

## ~DecimalFormatSymbols()

virtual U_I18N_API icu::DecimalFormatSymbols::~DecimalFormatSymbols | ( |  | ) |

virtual

Destructor.

Stable
  ICU 2.0

References U_I18N_API.

## Member Function Documentation

## createWithLastResortData()

U_I18N_API DecimalFormatSymbols * icu::DecimalFormatSymbols::createWithLastResortData | ( | UErrorCode & | status | ) |

static

Creates a DecimalFormatSymbols object with last-resort data.

Intended for callers who cache the symbols data and set all symbols on the resulting object.

The last-resort symbols are similar to those for the root data, except that the grouping separators are empty, the NaN symbol is U+FFFD rather than "NaN", and the CurrencySpacing patterns are empty.

Parameters

  status | Input/output parameter, set to success or failure code upon return.

Returns
  last-resort symbols

Stable
  ICU 52

References DecimalFormatSymbols(), and U_I18N_API.

## getCodePointZero()

U_I18N_API UChar32 icu::DecimalFormatSymbols::getCodePointZero | ( |  | ) | const

inline

Internal
  Do not use. This API is for internal use only. For ICU use only

Definition at line 417 of file dcfmtsym.h.

References U_I18N_API.

## getConstDigitSymbol()

const UnicodeString & icu::DecimalFormatSymbols::getConstDigitSymbol | ( | int32_t | digit | ) | const

inline

Returns the const UnicodeString reference, like getConstSymbol, corresponding to the digit with the given value.

This is equivalent to accessing the symbol from getConstSymbol with the corresponding key, such as kZeroDigitSymbol or kOneDigitSymbol.

This is not currently stable API, but if you think it should be stable, post a comment on the following ticket and the ICU team will take a look: https://unicode-org.atlassian.net/browse/ICU-13580

Parameters

  digit | The digit, an integer between 0 and 9 inclusive. If outside the range 0 to 9, the zero digit is returned.

Returns
  the format symbol for the given digit.

Internal
  Do not use. This API is for internal use only. This API is currently for ICU use only.

Definition at line 547 of file dcfmtsym.h.

References getConstDigitSymbol(), kOneDigitSymbol, and kZeroDigitSymbol.

Referenced by getConstDigitSymbol().

## getConstSymbol()

const UnicodeString & icu::DecimalFormatSymbols::getConstSymbol | ( | ENumberFormatSymbol | symbol | ) | const

inline

Internal function - more efficient version of getSymbol, returning a const reference to one of the symbol strings.

The returned reference becomes invalid when the symbol is changed or when the DecimalFormatSymbols are destroyed. Note: moved #ifndef U_HIDE_INTERNAL_API after this, since this is needed for inline in DecimalFormat

This is not currently stable API, but if you think it should be stable, post a comment on the following ticket and the ICU team will take a look: https://unicode-org.atlassian.net/browse/ICU-13580

Parameters

  symbol | Constant to indicate a number format symbol.

Returns
  the format symbol by the param 'symbol'

Internal
  Do not use. This API is for internal use only.

Definition at line 536 of file dcfmtsym.h.

References getConstSymbol(), and kFormatSymbolCount.

Referenced by getConstSymbol().

## getCurrencyPattern()

const char16_t * icu::DecimalFormatSymbols::getCurrencyPattern | ( |  | ) | const

inline

Returns that pattern stored in currency info.

Internal API for use by NumberFormat API.

Internal
  Do not use. This API is for internal use only.

Definition at line 601 of file dcfmtsym.h.

References getCurrencyPattern().

Referenced by getCurrencyPattern().

## getDynamicClassID()

virtual U_I18N_API UClassID icu::DecimalFormatSymbols::getDynamicClassID | ( |  | ) | const

override virtual

ICU "poor man's RTTI", returns a UClassID for the actual class.

Stable
  ICU 2.2

Reimplemented from icu::UObject.

References U_I18N_API.

## getLocale() [1/2]

Locale icu::DecimalFormatSymbols::getLocale | ( |  | ) | const

inline

Returns the locale for which this object was constructed.

Stable
  ICU 2.6

Definition at line 595 of file dcfmtsym.h.

References getLocale().

Referenced by getLocale(), and setCurrency().

## getLocale() [2/2]

U_I18N_API Locale icu::DecimalFormatSymbols::getLocale | ( | ULocDataLocaleType | type,
|  | UErrorCode & | status ) const

Returns the locale for this object.

Two flavors are available: valid and actual locale.

Stable
  ICU 2.8

References U_I18N_API.

## getNumberingSystemName()

const char * icu::DecimalFormatSymbols::getNumberingSystemName | ( |  | ) | const

inline

Returns the numbering system with which this DecimalFormatSymbols was initialized.

Internal
  Do not use. This API is for internal use only.

Definition at line 605 of file dcfmtsym.h.

References getNumberingSystemName().

Referenced by getNumberingSystemName().

## getPatternForCurrencySpacing()

U_I18N_API const UnicodeString & icu::DecimalFormatSymbols::getPatternForCurrencySpacing | ( | UCurrencySpacing | type,
|  | UBool | beforeCurrency,
|  | UErrorCode & | status ) const

Get pattern string for 'CurrencySpacing' that can be applied to currency format.

This API gets the CurrencySpacing data from ResourceBundle. The pattern can be empty if there is no data from current locale and its parent locales.

Parameters

  type | : UNUM_CURRENCY_MATCH, UNUM_CURRENCY_SURROUNDING_MATCH or UNUM_CURRENCY_INSERT.
  beforeCurrency | : true if the pattern is for before currency symbol. false if the pattern is for after currency symbol.
  status | Input/output parameter, set to success or failure code upon return.

Returns
  pattern string for currencyMatch, surroundingMatch or spaceInsert. Return empty string if there is no data for this locale and its parent locales.

Stable
  ICU 4.8

References U_I18N_API.

## getStaticClassID()

U_I18N_API UClassID icu::DecimalFormatSymbols::getStaticClassID | ( |  | ) |

static

ICU "poor man's RTTI", returns a UClassID for this class.

Stable
  ICU 2.2

References DecimalFormatSymbols(), and U_I18N_API.

## getSymbol()

UnicodeString icu::DecimalFormatSymbols::getSymbol | ( | ENumberFormatSymbol | symbol | ) | const

inline

Get one of the format symbols by its enum constant.

Each symbol is stored as a string so that graphemes (characters with modifier letters) can be used.

Parameters

  symbol | Constant to indicate a number format symbol.

Returns
  the format symbols by the param 'symbol'

Stable
  ICU 2.0

Definition at line 524 of file dcfmtsym.h.

References getSymbol(), and kFormatSymbolCount.

Referenced by getSymbol().

## isCustomCurrencySymbol()

U_I18N_API UBool icu::DecimalFormatSymbols::isCustomCurrencySymbol | ( |  | ) | const

inline

Internal
  Do not use. This API is for internal use only. For ICU use only

Definition at line 403 of file dcfmtsym.h.

References U_I18N_API.

## isCustomIntlCurrencySymbol()

U_I18N_API UBool icu::DecimalFormatSymbols::isCustomIntlCurrencySymbol | ( |  | ) | const

inline

Internal
  Do not use. This API is for internal use only. For ICU use only

Definition at line 410 of file dcfmtsym.h.

References U_I18N_API.

## operator!=()

U_I18N_API bool icu::DecimalFormatSymbols::operator!= | ( | const DecimalFormatSymbols & | other | ) | const

inline

Return true if another object is semantically unequal to this one.

Parameters

  other | the object to be compared with.

Returns
  true if another object is semantically unequal to this one.

Stable
  ICU 2.0

Definition at line 273 of file dcfmtsym.h.

References DecimalFormatSymbols(), icu::operator==(), and U_I18N_API.

## operator=()

U_I18N_API DecimalFormatSymbols & icu::DecimalFormatSymbols::operator= | ( | const DecimalFormatSymbols & |  | ) |

Assignment operator.

Stable
  ICU 2.0

References DecimalFormatSymbols(), and U_I18N_API.

## operator==()

U_I18N_API bool icu::DecimalFormatSymbols::operator== | ( | const DecimalFormatSymbols & | other | ) | const

Return true if another object is semantically equal to this one.

Parameters

  other | the object to be compared with.

Returns
  true if another object is semantically equal to this one.

Stable
  ICU 2.0

References DecimalFormatSymbols(), and U_I18N_API.

## setCurrency()

U_I18N_API void icu::DecimalFormatSymbols::setCurrency | ( | const char16_t * | currency,
|  | UErrorCode & | status )

Loads symbols for the specified currency into this instance.

This method is internal. If you think it should be public, file a ticket.

Internal
  Do not use. This API is for internal use only.

References getLocale(), and U_I18N_API.

## setPatternForCurrencySpacing()

U_I18N_API void icu::DecimalFormatSymbols::setPatternForCurrencySpacing | ( | UCurrencySpacing | type,
|  | UBool | beforeCurrency,
|  | const UnicodeString & | pattern )

Set pattern string for 'CurrencySpacing' that can be applied to currency format.

Parameters

  type | : UNUM_CURRENCY_MATCH, UNUM_CURRENCY_SURROUNDING_MATCH or UNUM_CURRENCY_INSERT.
  beforeCurrency | : true if the pattern is for before currency symbol. false if the pattern is for after currency symbol.
  pattern | : pattern string to override current setting.

Stable
  ICU 4.8

References U_I18N_API.

## setSymbol()

void icu::DecimalFormatSymbols::setSymbol | ( | ENumberFormatSymbol | symbol,
|  | const UnicodeString & | value,
|  | const UBool | propagateDigits = true )

inline

Set one of the format symbols by its enum constant.

Each symbol is stored as a string so that graphemes (characters with modifier letters) can be used.

Parameters

  symbol | Constant to indicate a number format symbol.
  value | value of the format symbol
  propagateDigits | If false, setting the zero digit will not automatically set 1-9. The default behavior is to automatically set 1-9 if zero is being set and the value it is being set to corresponds to a known Unicode zero digit.

Stable
  ICU 2.0

Definition at line 562 of file dcfmtsym.h.

References icu::UnicodeString::char32At(), icu::UnicodeString::countChar32(), kCurrencySymbol, kFormatSymbolCount, kIntlCurrencySymbol, kNineDigitSymbol, kOneDigitSymbol, kZeroDigitSymbol, setSymbol(), and u_charDigitValue().

Referenced by setSymbol().

The documentation for this class was generated from the following file:

- i18n/unicode/dcfmtsym.h