class NumberingSystem

Defined at line 60 of file ../../third_party/icu/default/source/i18n/unicode/numsys.h

Defines numbering systems. A numbering system describes the scheme by which

numbers are to be presented to the end user. In its simplest form, a numbering

system describes the set of digit characters that are to be used to display

numbers, such as Western digits, Thai digits, Arabic-Indic digits, etc., in a

positional numbering system with a specified radix (typically 10).

More complicated numbering systems are algorithmic in nature, and require use

of an RBNF formatter ( rule based number formatter ), in order to calculate

the characters to be displayed for a given number. Examples of algorithmic

numbering systems include Roman numerals, Chinese numerals, and Hebrew numerals.

Formatting rules for many commonly used numbering systems are included in

the ICU package, based on the numbering system rules defined in CLDR.

Alternate numbering systems can be specified to a locale by using the

numbers locale keyword.

Public Methods

void NumberingSystem ()

Default Constructor.

ICU 4.2

void NumberingSystem (const NumberingSystem & other)

Copy constructor.

ICU 4.2

NumberingSystem & operator= (const NumberingSystem & other)

Copy assignment.

ICU 4.2

Defined at line 80 of file ../../third_party/icu/default/source/i18n/unicode/numsys.h

void ~NumberingSystem ()

Destructor.

ICU 4.2

NumberingSystem * createInstance (const Locale & inLocale, UErrorCode & status)

Create the default numbering system associated with the specified locale.

Parameters

inLocale The given locale.
status ICU status ICU 4.2
NumberingSystem * createInstance (UErrorCode & status)

Create the default numbering system associated with the default locale.

ICU 4.2

NumberingSystem * createInstance (int32_t radix, UBool isAlgorithmic, const UnicodeString & description, UErrorCode & status)

Create a numbering system using the specified radix, type, and description.

Parameters

radix The radix (base) for this numbering system.
isAlgorithmic true if the numbering system is algorithmic rather than numeric.
description The string representing the set of digits used in a numeric system, or the name of the RBNF ruleset to be used in an algorithmic system.
status ICU status ICU 4.2
StringEnumeration * getAvailableNames (UErrorCode & status)

Return a StringEnumeration over all the names of numbering systems known to ICU.

The numbering system names will be in alphabetical (invariant) order.

The returned StringEnumeration is owned by the caller, who must delete it when

finished with it.

ICU 4.2

NumberingSystem * createInstanceByName (const char * name, UErrorCode & status)

Create a numbering system from one of the predefined numbering systems specified

by CLDR and known to ICU, such as "latn", "arabext", or "hanidec"; the full list

is returned by unumsys_openAvailableNames. Note that some of the names listed at

http://unicode.org/repos/cldr/tags/latest/common/bcp47/number.xml - e.g.

default, native, traditional, finance - do not identify specific numbering systems,

but rather key values that may only be used as part of a locale, which in turn

defines how they are mapped to a specific numbering system such as "latn" or "hant".

Parameters

name The name of the numbering system.
status ICU status; set to U_UNSUPPORTED_ERROR if numbering system not found.

Returns

The NumberingSystem instance, or nullptr if not found.

ICU 4.2

int32_t getRadix ()

Returns the radix of this numbering system. Simple positional numbering systems

typically have radix 10, but might have a radix of e.g. 16 for hexadecimal. The

radix is less well-defined for non-positional algorithmic systems.

ICU 4.2

const char * getName ()

Returns the name of this numbering system if it was created using one of the predefined names

known to ICU. Otherwise, returns nullptr.

The predefined names are identical to the numbering system names as defined by

the BCP47 definition in Unicode CLDR.

See also, http://www.unicode.org/repos/cldr/tags/latest/common/bcp47/number.xml

ICU 4.6

UnicodeString getDescription ()

Returns the description string of this numbering system. For simple

positional systems this is the ordered string of digits (with length matching

the radix), e.g. "\u3007\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D"

for "hanidec"; it would be "0123456789ABCDEF" for hexadecimal. For

algorithmic systems this is the name of the RBNF ruleset used for formatting,

e.g. "zh/SpelloutRules/%spellout-cardinal" for "hans" or "%greek-upper" for

"grek".

ICU 4.2

UBool isAlgorithmic ()

Returns true if the given numbering system is algorithmic

Returns

true if the numbering system is algorithmic.

Otherwise, return false.

ICU 4.2

UClassID getStaticClassID ()

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

ICU 4.2

UClassID getDynamicClassID ()

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

ICU 4.2