note!

For 0.6, this crate is going under a substantial re-write. The API is likely to change.

Korean Numbers

Converts a string, {integer}, or BigInt to hangul output.

You can choose between Sino-Korean numbers (based on Korean's adopted Chinese characters, 한자), or Pure Korean numbers.

Example Usage

```rust // Get Pure Korean Hangeul asserteq!("서른둘", hangeulfromint(30, false)); asserteq!("둘", hangeulfromstring(String::from("2"), false));

// Get Sino-Korean Hangeul asserteq!("백이십", hangeulfromint(120, true)); asserteq!("만 이천삼백사십오", hangeulfromstring(String::from("12345"), true));

// Get Sino-Korean Hangeul from a BigInt asserteq!("천극", hangeulfrom_bigint(pow(BigInt::from(10), 51))), ```

About Korean Numbers

Korean utilizes two number systems. One uses numbers that are purely Korean, the other uses numbers that are derived from borrowed Chinese characters (한자).


A confusing aspect is that number groupings are done in terms of 4 zeroes, not 3.

In English, 100,000 is one hundred thousand: 100 * 1,000. In Korean, it's 십만, or 10 * 10,000.

10 = 십 (in Sino-Korean) 10,000 = 만.

In English, 1,000,000 is one million. In Korean, it's 백만, or 100 * 10,000.

100 = 백. 10,000 = 만.


After 만, the next unique word for a grouping is 억, at 10^8. You can see all of the groupings this program supports below.


Lastly, Korean number words are not spaced except for grouping words like 만, 억, 조, and upwards.

Pure Korean Numbers

Pure Korean numbers are only used for numbers 1 through 99. They mirror our twenty, thirty, etc, in that each tens increase has a unique word to memorize.

In real life, it's uncommon to use pure korean numbers over 50 or so.


To show the tens place, the place word comes before the number.

1 is 하나, 10 is 열, 20 is 스물 (in Pure Korean).

| Number | Hangeul | Literal | | :---: | :---: | :---: | | 1 | 하나 | one | | 10 | 열 | ten | | 11 | 열하나 | ten one | | 20 | 스물 | twenty | | 21 | 스물하나 | twenty one |

1, 2, 3, 4, and 20 can be conjugated as well. todo: add conjugation rules here

Sino-Korean Numbers

Adding a number before a place word like 십, 백, 천, 만, etc, multiplies it. Adding a number after adds it.

3 is 삼, 10 is 십 (in Sino-Korean).

| Number | Hangeul | Literal | | :---: | :---: | :---: | | 13 | 십삼 | ten three | | 30 | 삼십 | 3 tens |


Sino-Korean number support in this program goes up to 10^51:

| Power | Hangeul Grouping | Hanja | | :---: | :---: | :---: | | 10^4 | 만 | 萬 | | 10^8 | 억 | 億 | | 10^12 | 조 | 兆 | | 10^16 | 경 | 京 | | 10^20 | 해 | 垓 | | 10^24 | 자 | 秭 | | 10^28 | 양 | 穰 | | 10^32 | 구 | 溝 | | 10^36 | 간 | 澗 | | 10^40 | 정 | 正 | | 10^44 | 재 | 載 | | 10^48 | 극 | 極 |

Wikipedia lists even higher groupings, but at different exponents...

| Power | Hangeul Grouping | Hanja | | :---: | :---: | :---: | | 10^52 or 10^56 | 항하사 | 恒河沙 | | 10^56 or 10^64 | 아승기| 阿僧祇| | 10^60 or 10^72 | 나유타| 那由他| | 10^64 or 10^80 | 불가사의| 不可思議| | 10^68 or 10^88 | 무량대수| 無量大數|

Counters

-- see todo

Further Reading

  1. Korean Numbers
  2. Big Korean Numbers
  3. Wikipedia - Korean Numerals
  4. Korean Numbers Reference

Todo