Jump to content

Numerals in Unicode

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by AnomieBOT (talk | contribs) at 18:48, 19 April 2016 (Substing templates: {{Unicode}} and {{unicode}}. See User:AnomieBOT/docs/TemplateSubster for info.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Numerals (often called numbers in Unicode) are characters or sequences of characters that denote a number. The same Arabic-Indic numerals are used widely in various writing systems throughout the world and all share the same semantics for denoting numbers. However, the graphemes representing these numerals differ widely from one writing system to another. To support these grapheme differences, Unicode includes encodings of these numerals within many of the script blocks. The decimal digits are repeated in 23 separate blocks: twice in Arabic. Six additional blocks contain the digits again as rich text primarily to serve as a palette of graphemes for specialized mathematical use. In addition to many forms of the Arabic-Indic numerals, Unicode also includes several less common numerals such as: Aegean numerals, Roman numerals, counting rod numerals, Cuneiform numerals and ancient Greek numerals.

Numerals invariably involve composition of glyphs as a limited number of characters are composed to make other numerals. For example, the sequence 9–9–0 in Arabic-Indic numerals composes the numeral for nine hundred ninety (990). In Roman numerals, the same number is expressed by the composed numeral Ⅹↀ or ⅩⅯ. Each of these is a distinct numeral for representing the same abstract number. The semantics of the numerals differ in particular in their composition. The Arabic-Indic decimal digits are positional-value compositions, while the Roman numerals are sign-value and they are additive and subtractive depending on their composition.

Numerals by numeric property

Grouped by their numerical property as used in a text, Unicode has four values for Numeric Type. First there is the "not a number" type. Then there are decimal-radix numbers, commonly used in Western style decimals (plain 0-9), there are numbers that are not part of a decimal system such as Roman numbers, and decimal numbers in typographic context, such as encircled numbers. Not noted is a numbering like "A. B. C." for chapter numbering.

Numeric Type[a][b] (Unicode character property)
Numeric type Code Has numeric value Example Remarks
Not numeric <none> No
  • A
  • X (Latin)
  • !
  • Д
  • μ
Numeric Value="NaN"
Decimal De Yes
  • 0
  • 1
  • 9
  •  (Devanagari 6)
  •  (Kannada 6)
  • 𝟨 (Mathematical, styled sans serif)
Straight digit (decimal-radix). Corresponds both ways with General Category=Nd[a]
Digit Di Yes
  • ¹ (superscript)
  •  (digit with full stop)
Decimal, but in typographic context
Numeric Nu Yes
  • ¾
  •  (Tamil number ten)
  •  (Roman numeral)
  •  (Han number 6)
Numeric value, but not decimal-radix
a. ^ "Section 4.6: Numeric Value". The Unicode Standard. Unicode Consortium. September 2024.
b. ^ "Unicode 16.0 Derived Numeric Types". Unicode Character Database. Unicode Consortium. 2024-04-30.

Hexadecimal digits

Hexadecimal digits in Unicode are not separate characters, existing letters and numbers are used. These characters have marked Character properties Hex_digit=Yes, and ASCII_Hex_digit=Yes when appropriate.

Characters in Unicode marked Hex_Digit=Yes[a]
0123456789ABCDEF Basic Latin, capitals Also ASCII_Hex_Digit=Yes
0123456789abcdef Basic Latin, small letters Also ASCII_Hex_Digit=Yes
0123456789ABCDEF Fullwidth forms, capitals
0123456789abcdef Fullwidth forms, small letters
a. ^ "Unicode 16.0 UCD: PropList.txt". 2024-05-31. Retrieved 2024-09-13.

Numerals by script

Arabic–Indic numerals

The Arabic–Indic numerals involve ten digits (for base ten; 0–9 ) and a decimal separator that can be combined into composite numerals representing any rational number. Unicode includes these ten digits in the Basic Latin (or ASCII derived) block. Unicode has no decimal separator for common unified use. The Arabic script includes an Arabic specific decimal separator (U+066B). Other writing systems are to use whatever punctuation produces the appropriate glyph for the locale: for example ‘Full Stop’ (U+002E period) in United States usage and Comma (U+002C) in many other locales.

The Arabic–Indic digits are repeated in several other scripts: Arabic, Balinese, Bengali, Devanagari, Ethiopic, Gujarati, Gurmukhi, Telugu, Khmer, Lao, Limbu, Malayalam, Mongolian, Myanmar, New Tai Lue, Nko, Oriya, Telugu, Thai, Tibetan, Osmanya. Unicode includes a numeric value property for each digit to assist in collation and other text processing operations. However, there is no mapping between the various related Arabic–Indic digits.

Fractions

The fraction slash character (U+2044) allows authors using Unicode to compose any arbitrary fraction along with the decimal digits. Unicode also includes a handful of vulgar fractions as compatibility characters, but discourages their use.

Decimal fractions

Several characters in Unicode can serve as a decimal separator depending on the locale. Decimal fractions are represented in text as a sequence of decimal digit numerals with a decimal separator separating the whole-number portion from the fractional portion. For example, the decimal fraction for “¼” is expressed as zero-point-two-five (“0.25”). Unicode has no dedicated general decimal separator but unifies the decimal separator function with other punctuation characters. So the “.” used in “0.25” is the same period character used to end the sentence. However, cultures vary in the glyph or grapheme used for a decimal separator. So in some locales, the comma may be used instead ”0,25”. Still other locales use a space for “0 25”. The Arabic writing system includes a dedicated character for a decimal separator that looks much like a comma ”٫” (U+066B) which when combined with the Arabic graphemes for the Arabic–Indic decimal digits to express one-quarter appears as: “٠٫٢٥”.

Note that although Arabic is written from right to left, while English is written left to right, in both languages numbers are written with the most significant digit on the left and the least significant on the right.

Characters for mathematical constants

Currently, three Unicode characters semantically represent mathematical constants: U+210E PLANCK CONSTANT, the U+210F PLANCK CONSTANT OVER TWO PI, and U+2107 EULER CONSTANT. Other mathematical constants can be represented using characters that have multiple semantic uses. For example, although Unicode includes a character for natural exponent ℯ (U+212F) its UCS canonical name derives from its glyph: U+212F SCRIPT SMALL E; and the mathematical constant π, 3.141592.., is represented by U+03C0 π GREEK SMALL LETTER PI.

Rich text and other compatibility numerals

The Arabic–Indic numerals also appear among the compatibility characters as rich text variant forms including bold, double-struck, monospace, sans-serif and sans-serif bold. and fullwidth variants for legacy vertical text support.

Rich text parenthesized, circled and other variants are also included in the blocks: Enclosed CJK Letters and Months; Enclosed Alphanumerics, Superscripts and Subscripts; Number Forms; and Dingbats.

CJK Suzhou (huāmǎ) numerals

The huāmǎ system is a variation of the rod numeral system. Rod numerals are closely related to the counting rods and the abacus, which is why the numeric symbols for 1, 2, 3, 6, 7 and 8 in the huāmǎ system are represented in a similar way as on the abacus. Nowadays, the huāmǎ system is only used for displaying prices in Chinese markets or on traditional handwritten invoices.

Suzhou (huāmǎ) numerals in Unicode

According to the Unicode standard version 3.0, these characters are called Hangzhou style numerals. This indicates that it is not used only by Cantonese in Hong Kong. In the Unicode standard 4.0, an erratum was added which stated:

The digits of the Suzhou numerals are designated in the CJK Symbols and Punctuation block between U+3021 and U+3029, U+3007, U+5341, U+5344, and. U+5345.

Japanese and Korean numerals


Ancient Greek numerals

Unicode provides support for several variants of Greek numerals, assigned to the Supplementary Multilingual Plane from U+10140 through U+1018F.[1]

Attic numerals were used by ancient Greeks, possibly from the 7th century BC. They were also known as Herodianic numerals because they were first described in a 2nd-century manuscript by Herodian. They are also known as acrophonic numerals because all of the symbols used derive from the first letters of the words that the symbols represent: 'one', 'five', 'ten', 'hundred', 'thousand' and 'ten thousand'. See Greek numerals and acrophony.

Decimal Symbol Greek numeral
1 Ι ἴος or ἰός (ios)
5 Π πέντε (pente)
10 Δ δέκα (deka)
100 Η ἑκατόν (hekaton)
1000 Χ χίλιοι (khilioi)
10000 Μ μύριοι (myrioi)
Ancient Greek Numbers[1][2]
Official Unicode Consortium code chart (PDF)
  0 1 2 3 4 5 6 7 8 9 A B C D E F
U+1014x 𐅀 𐅁 𐅂 𐅃 𐅄 𐅅 𐅆 𐅇 𐅈 𐅉 𐅊 𐅋 𐅌 𐅍 𐅎 𐅏
U+1015x 𐅐 𐅑 𐅒 𐅓 𐅔 𐅕 𐅖 𐅗 𐅘 𐅙 𐅚 𐅛 𐅜 𐅝 𐅞 𐅟
U+1016x 𐅠 𐅡 𐅢 𐅣 𐅤 𐅥 𐅦 𐅧 𐅨 𐅩 𐅪 𐅫 𐅬 𐅭 𐅮 𐅯
U+1017x 𐅰 𐅱 𐅲 𐅳 𐅴 𐅵 𐅶 𐅷 𐅸 𐅹 𐅺 𐅻 𐅼 𐅽 𐅾 𐅿
U+1018x 𐆀 𐆁 𐆂 𐆃 𐆄 𐆅 𐆆 𐆇 𐆈 𐆉 𐆊 𐆋 𐆌 𐆍 𐆎
Notes
1.^ As of Unicode version 16.0
2.^ Grey area indicates non-assigned code point

Roman numerals

Roman numerals are a numeral system originating in ancient Rome, adapted from Etruscan numerals. The system used in classical antiquity was slightly modified in the Middle Ages to produce the system we use today. It is based on certain letters which are given values as numerals.

Roman numerals are commonly used today in numbered lists (in outline format), clockfaces, pages preceding the main body of a book, chord triads in music analysis (Roman numeral analysis), the numbering of movie and video game sequels, book publication dates, successive political leaders or children with identical names, and the numbering of some sport events, such as the Olympic Games or the Super Bowl.

Roman numerals in Unicode

Unicode has a number of characters specifically designated as Roman numerals, as part of the Number Forms[2] range from U+2160 to U+2188. This range includes both upper- and lowercase numerals, as well as pre-combined characters for numbers up to 12 (Ⅻ or XII). One reason for the existence of pre-combined numbers is to facilitate the setting of multiple-letter numbers (such as VIII) on a single horizontal line in Asian vertical text. The Unicode standard, however, includes special Roman numeral code points for compatibility only, stating that "[f]or most purposes, it is preferable to compose the Roman numerals from sequences of the appropriate Latin letters".[3]

Additionally, characters exist for archaic[2] forms of 1000, 5000, 10,000, large reversed C (Ɔ), late 6 (ↅ, similar to Greek Stigma: Ϛ), early 50 (ↆ, similar to down arrow ↓⫝⊥[4]), 50,000, and 100,000. Note that the small reversed c, ↄ is not intended to be used in Roman numerals, but as lower case Claudian letter Ↄ,

Table of Roman numerals in Unicode
Code x= 0 1 2 3 4 5 6 7 8 9 A B C D E F
Value[5] 1 2 3 4 5 6 7 8 9 10 11 12 50 100 500 1,000
U+216x
U+217x
Value 1000 5000 10,000 6 50 50,000 100,000
U+218x

If using blackletter or script typefaces, Roman numerals are set in Roman type. Such typefaces may contain Roman numerals matching the style of the typeface in the Unicode range U+2160–217F; if they don't exist, a matching Antiqua typeface is used for Roman numerals.

Unicode has characters for Roman fractions in the Ancient Symbols[6] block: sextans, uncia, semuncia, sextula, dimidia sextula, siliqua, and as.

Counting-rod numerals

Value 0 1 2 3 4 5 6 7 8 9
Vertical
Horizontal

The vertical rods are usually for even powers of ten (1, 100, 10000...) and the horizontal for odd powers (10, 1000...). For example, 126 is represented by instead of , which could be confused with 36. Historically, red rods were used for positive numbers and black rods for negative numbers.

Counting rod numerals in Unicode

Counting rod numerals are included in their own block in the Supplementary Multilingual Plane (SMP) from U+1D360 to U+1D37F. Eighteen characters for vertical and horizontal digits of 1-9 are included as of Unicode 5.0, though vertical and horizontal are opposite from the description above. Fourteen code points reserved for future use. Zero should be represented by U+3007 (〇, ideographic number zero) and the negative sign should be represented by U+20E5 (combining reverse solidus overlay).[7] As these were recently added to the character set and since they are included in the SMP, font support may still be limited.

Counting Rod Numerals[1][2]
Official Unicode Consortium code chart (PDF)
  0 1 2 3 4 5 6 7 8 9 A B C D E F
U+1D36x 𝍠 𝍡 𝍢 𝍣 𝍤 𝍥 𝍦 𝍧 𝍨 𝍩 𝍪 𝍫 𝍬 𝍭 𝍮 𝍯
U+1D37x 𝍰 𝍱 𝍲 𝍳 𝍴 𝍵 𝍶 𝍷 𝍸
Notes
1.^ As of Unicode version 16.0
2.^ Grey areas indicate non-assigned code points

See also

References