ICU 57.1 57.1
DecimalFormatSymbols Class Reference

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

#include <dcfmtsym.h>

Inheritance diagram for DecimalFormatSymbols:
UObject UMemory

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 ,
  kFormatSymbolCount = kNineDigitSymbol + 2
}
 Constants for specifying a number format symbol. More...
 

Public Member Functions

 DecimalFormatSymbols (const Locale &locale, UErrorCode &status)
 Create a DecimalFormatSymbols object for the given locale.
 
 DecimalFormatSymbols (UErrorCode &status)
 Create a DecimalFormatSymbols object for the default locale.
 
 DecimalFormatSymbols (const DecimalFormatSymbols &)
 Copy constructor.
 
DecimalFormatSymbolsoperator= (const DecimalFormatSymbols &)
 Assignment operator.
 
virtual ~DecimalFormatSymbols ()
 Destructor.
 
UBool operator== (const DecimalFormatSymbols &other) const
 Return true if another object is semantically equal to this one.
 
UBool operator!= (const DecimalFormatSymbols &other) const
 Return true if another object is semantically unequal to this one.
 
UnicodeString getSymbol (ENumberFormatSymbol symbol) const
 Get one of the format symbols by its enum constant.
 
void setSymbol (ENumberFormatSymbol symbol, const UnicodeString &value, const UBool propogateDigits)
 Set one of the format symbols by its enum constant.
 
Locale getLocale () const
 Returns the locale for which this object was constructed.
 
Locale getLocale (ULocDataLocaleType type, UErrorCode &status) const
 Returns the locale for this object.
 
const UnicodeStringgetPatternForCurrencySpacing (UCurrencySpacing type, UBool beforeCurrency, UErrorCode &status) const
 Get pattern string for 'CurrencySpacing' that can be applied to currency format.
 
void setPatternForCurrencySpacing (UCurrencySpacing type, UBool beforeCurrency, const UnicodeString &pattern)
 Set pattern string for 'CurrencySpacing' that can be applied to currency format.
 
virtual UClassID getDynamicClassID () const
 ICU "poor man's RTTI", returns a UClassID for the actual class.
 
UBool isCustomCurrencySymbol () const
 
UBool isCustomIntlCurrencySymbol () const
 
const UnicodeStringgetConstSymbol (ENumberFormatSymbol symbol) const
 Internal function - more efficient version of getSymbol, returning a const reference to one of the symbol strings.
 
const UChargetCurrencyPattern (void) const
 Returns that pattern stored in currecy info.
 
- Public Member Functions inherited from UObject
virtual ~UObject ()
 Destructor.
 

Static Public Member Functions

static DecimalFormatSymbolscreateWithLastResortData (UErrorCode &status)
 Creates a DecimalFormatSymbols object with last-resort data.
 
static 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 "#,##,###,####" == "######,####" == "##,####,####".

This class only handles localized digits where the 10 digits are contiguous in Unicode, from 0 to 9. Other digits sets (such as superscripts) would need a different subclass.

Definition at line 84 of file dcfmtsym.h.

Member Enumeration Documentation

◆ 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
kFormatSymbolCount 

count symbol constants

Definition at line 90 of file dcfmtsym.h.

Constructor & Destructor Documentation

◆ DecimalFormatSymbols() [1/3]

DecimalFormatSymbols::DecimalFormatSymbols ( const Locale & locale,
UErrorCode & status )

Create a DecimalFormatSymbols object for the given locale.

Parameters
localeThe locale to get symbols for.
statusInput/output parameter, set to success or failure code upon return.
Stable
ICU 2.0

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

◆ DecimalFormatSymbols() [2/3]

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
statusInput/output parameter, set to success or failure code upon return.
Stable
ICU 2.0

◆ DecimalFormatSymbols() [3/3]

DecimalFormatSymbols::DecimalFormatSymbols ( const DecimalFormatSymbols & )

Copy constructor.

Stable
ICU 2.0

References DecimalFormatSymbols().

◆ ~DecimalFormatSymbols()

virtual DecimalFormatSymbols::~DecimalFormatSymbols ( )
virtual

Destructor.

Stable
ICU 2.0

Member Function Documentation

◆ createWithLastResortData()

static DecimalFormatSymbols * 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
statusInput/output parameter, set to success or failure code upon return.
Returns
last-resort symbols
Stable
ICU 52

References DecimalFormatSymbols().

◆ getConstSymbol()

const UnicodeString & 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.

TODO markus 2002oct11: Consider proposing getConstSymbol() to be really public.

Note: moved #ifndef U_HIDE_INTERNAL_API after this, since this is needed for inline in DecimalFormat

Parameters
symbolConstant 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 447 of file dcfmtsym.h.

References kFormatSymbolCount.

◆ getCurrencyPattern()

const UChar * DecimalFormatSymbols::getCurrencyPattern ( void ) const
inline

Returns that pattern stored in currecy info.

Internal API for use by NumberFormat API.

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

Definition at line 493 of file dcfmtsym.h.

◆ getDynamicClassID()

virtual UClassID DecimalFormatSymbols::getDynamicClassID ( ) const
virtual

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

Stable
ICU 2.2

Reimplemented from UObject.

◆ getLocale() [1/2]

Locale DecimalFormatSymbols::getLocale ( ) const
inline

Returns the locale for which this object was constructed.

Stable
ICU 2.6

Definition at line 487 of file dcfmtsym.h.

◆ getLocale() [2/2]

Locale 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

◆ getPatternForCurrencySpacing()

const UnicodeString & 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.
statusInput/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

◆ getStaticClassID()

static UClassID DecimalFormatSymbols::getStaticClassID ( )
static

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

Stable
ICU 2.2

References DecimalFormatSymbols(), and FALSE.

◆ getSymbol()

UnicodeString 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
symbolConstant to indicate a number format symbol.
Returns
the format symbols by the param 'symbol'
Stable
ICU 2.0

Definition at line 435 of file dcfmtsym.h.

References kFormatSymbolCount.

◆ isCustomCurrencySymbol()

UBool DecimalFormatSymbols::isCustomCurrencySymbol ( ) const
inline
Internal
Do not use. This API is for internal use only. For ICU use only

Definition at line 362 of file dcfmtsym.h.

◆ isCustomIntlCurrencySymbol()

UBool DecimalFormatSymbols::isCustomIntlCurrencySymbol ( ) const
inline
Internal
Do not use. This API is for internal use only. For ICU use only

Definition at line 369 of file dcfmtsym.h.

◆ operator!=()

UBool DecimalFormatSymbols::operator!= ( const DecimalFormatSymbols & other) const
inline

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

Parameters
otherthe object to be compared with.
Returns
true if another object is semantically unequal to this one.
Stable
ICU 2.0

Definition at line 247 of file dcfmtsym.h.

References DecimalFormatSymbols(), and operator==().

◆ operator=()

DecimalFormatSymbols & DecimalFormatSymbols::operator= ( const DecimalFormatSymbols & )

Assignment operator.

Stable
ICU 2.0

References DecimalFormatSymbols().

◆ operator==()

UBool DecimalFormatSymbols::operator== ( const DecimalFormatSymbols & other) const

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

Parameters
otherthe object to be compared with.
Returns
true if another object is semantically equal to this one.
Stable
ICU 2.0

References DecimalFormatSymbols().

◆ setPatternForCurrencySpacing()

void 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

◆ setSymbol()

void DecimalFormatSymbols::setSymbol ( ENumberFormatSymbol symbol,
const UnicodeString & value,
const UBool propogateDigits = 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
symbolConstant to indicate a number format symbol.
valuevalue of the format symbol
propogateDigitsIf 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 460 of file dcfmtsym.h.

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


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