icu::NumberingSystem Class Reference

Defines numbering systems. More...

`#include <numsys.h>`

Inheritance diagram for icu::NumberingSystem:

## Public Member Functions

| NumberingSystem ()
| Default Constructor. More...
| NumberingSystem (const NumberingSystem &other)
| Copy constructor. More...
NumberingSystem & | operator= (const NumberingSystem &other)=default
| Copy assignment. More...
virtual | ~NumberingSystem ()
| Destructor. More...
int32_t | getRadix () const
| Returns the radix of this numbering system. More...
const char * | getName () const
| Returns the name of this numbering system if it was created using one of the predefined names known to ICU. More...
virtual UnicodeString | getDescription () const
| Returns the description string of this numbering system. More...
UBool | isAlgorithmic () const
| Returns true if the given numbering system is algorithmic. More...
virtual UClassID | getDynamicClassID () const override
| ICU "poor man's RTTI", returns a UClassID for the actual class. More...
Public Member Functions inherited from icu::UObject
virtual | ~UObject ()
| Destructor. More...

## Static Public Member Functions

static NumberingSystem * | createInstance (const Locale &inLocale, UErrorCode &status)
| Create the default numbering system associated with the specified locale. More...
static NumberingSystem * | createInstance (UErrorCode &status)
| Create the default numbering system associated with the default locale. More...
static NumberingSystem * | createInstance (int32_t radix, UBool isAlgorithmic, const UnicodeString &description, UErrorCode &status)
| Create a numbering system using the specified radix, type, and description. More...
static StringEnumeration * | getAvailableNames (UErrorCode &status)
| Return a StringEnumeration over all the names of numbering systems known to ICU. More...
static 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. More...
static UClassID | getStaticClassID ()
| ICU "poor man's RTTI", returns a UClassID for this class. More...

## Detailed Description

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.

Definition at line 60 of file numsys.h.

## Constructor & Destructor Documentation

## NumberingSystem() [1/2]

icu::NumberingSystem::NumberingSystem | ( |  | ) |

Default Constructor.

Stable:
  ICU 4.2

## NumberingSystem() [2/2]

icu::NumberingSystem::NumberingSystem | ( | const NumberingSystem & | other | ) |

Copy constructor.

Stable:
  ICU 4.2

## ~NumberingSystem()

virtual icu::NumberingSystem::~NumberingSystem | ( |  | ) |

virtual

Destructor.

Stable:
  ICU 4.2

## Member Function Documentation

## createInstance() [1/3]

static NumberingSystem* icu::NumberingSystem::createInstance | ( | const Locale & | inLocale,
|  | UErrorCode & | status
| ) |  |

static

Create the default numbering system associated with the specified locale.

Parameters

  inLocale | The given locale.
  status | ICU status

Stable:
  ICU 4.2

## createInstance() [2/3]

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

static

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

Stable:
  ICU 4.2

## createInstance() [3/3]

static NumberingSystem* icu::NumberingSystem::createInstance | ( | UErrorCode & | status | ) |

static

Create the default numbering system associated with the default locale.

Stable:
  ICU 4.2

## createInstanceByName()

static NumberingSystem* icu::NumberingSystem::createInstanceByName | ( | const char * | name,
|  | UErrorCode & | status
| ) |  |

static

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.

Stable:
  ICU 4.2

## getAvailableNames()

static StringEnumeration* icu::NumberingSystem::getAvailableNames | ( | UErrorCode & | status | ) |

static

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.

Stable:
  ICU 4.2

## getDescription()

virtual UnicodeString icu::NumberingSystem::getDescription | ( |  | ) | const

virtual

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".

Stable:
  ICU 4.2

## getDynamicClassID()

virtual UClassID icu::NumberingSystem::getDynamicClassID | ( |  | ) | const

overridevirtual

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

Stable:
  ICU 4.2

Reimplemented from icu::UObject.

## getName()

const char* icu::NumberingSystem::getName | ( |  | ) | const

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

Stable:
  ICU 4.6

## getRadix()

int32_t icu::NumberingSystem::getRadix | ( |  | ) | const

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.

Stable:
  ICU 4.2

## getStaticClassID()

static UClassID icu::NumberingSystem::getStaticClassID | ( |  | ) |

static

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

Stable:
  ICU 4.2

## isAlgorithmic()

UBool icu::NumberingSystem::isAlgorithmic | ( |  | ) | const

Returns true if the given numbering system is algorithmic.

Returns
  true if the numbering system is algorithmic. Otherwise, return false.

Stable:
  ICU 4.2

## operator=()

NumberingSystem& icu::NumberingSystem::operator= | ( | const NumberingSystem & | other | ) |

default

Copy assignment.

Stable:
  ICU 4.2

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

- i18n/unicode/numsys.h