#韩文 #韩文 #韩文 #解析器 #数学表达式 #libhangeul

korean_numbers

将几种类型的数字和表达式解析为韩文韩字

14 个版本

0.6.7 2022 年 6 月 6 日
0.6.6 2019 年 1 月 28 日
0.5.5 2019 年 1 月 9 日
0.5.3 2018 年 12 月 31 日
0.4.2 2018 年 12 月 20 日

#63国际化 (i18n)

每月 21 次下载

AGPL-3.0-only

32KB
744

builds.sr.ht status

注意!

在 1.0 版本之前,这个包可能需要进行适度的重写。

韩文数字

支持将几种不同类型转换为韩文韩字

  • int
  • 货币 (f64)
  • bigint
  • str
  • 一些数学表达式

您可以选择基于韩国使用的汉字(汉字)的汉字数字,或者纯韩文数字。

示例用法

// Get Pure Korean Hangeul
assert_eq!("서른둘", hangeul_from_int(30, false));
assert_eq!("", hangeul_from_string(String::from("2"), false));

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

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

// Get Hangeul from a math expression (Sino-Korean only)
assert_eq!("일 더하기 일", "hangeul_from_expression("1 + 1");

// Get Hangeul from money (an f64 which gets truncated to 2 places) (Sino-Korean only)
assert_eq!("일 점 일", "hangeul_from_money(1.1);

关于韩文数字

韩文使用两种数字系统。一种使用纯韩文数字,另一种使用从借用的汉字(汉字)派生出的数字。


令人困惑的一点是,数字分组是以 4 个零为单位的,而不是 3 个。

在英语中,100,000 是一百万: 100 * 1,000。在韩文中,它是 십만,或 10 * 10,000

10 = 십(汉字韩文)10,000 = 만。

在英语中,1,000,000 是一百万。在韩文中,它是 백만,或 100 * 10,000

100 = 백。10,000 = 만。


在 만 之后,下一个独特的分组词是 억,在 10^8。下面列出了本程序支持的分组。


最后,韩文数字词之间没有空格,除了分组词如 만、억、조 等。

纯韩文数字

纯韩文数字仅用于 1 到 99 的数字。它们类似于我们的 twentythirty 等,即每个十位增加都有一个独特的词来记忆。

在现实生活中,超过 50 的纯韩文数字很少使用。


要表示十位,位数词位于数字之前。

1 是 하나,10 是 열,20 是 스물(纯韩文)。

数字 韩文 文字
1 하나 一个
10
11 열하나 十一
20 스물 二十
21 스물하나 二十一

1, 2, 3, 4 和 20 也可以进行词形变化。待办事项:在此处添加词形变化规则

汉字韩语数字

在地点词如“십”、“백”、“천”、“만”等之前加数字,表示乘法。在之后加表示加法。

3 是 “삼”,10 是 “십”(在汉字韩语中)。

数字 韩文 文字
13 십삼 十三
30 삼십 3三十

本程序支持汉字韩语数字的范围达到 10^51

韩文分组 汉字
10^4
10^8 亿
10^12
10^16
10^20
10^24
10^28
10^32
10^36
10^40
10^44
10^48

维基百科列出了更高的分组,但指数不同...

韩文分组 汉字
10^52 或 10^56 恒河沙 恒河沙
10^56 或 10^64 阿僧祇 阿僧祇
10^60 或 10^72 那由他 那由他
10^64 或 10^80 不可思議 不可思议
10^68 或 10^88 無量大數 无量数

数学表达式

以下数学表达式得到支持。进行数学运算时使用汉字韩语数字。

pub enum KoreanMathOp {
    Add,
    Divide,
    Multiply,
    Subtract,
    Pow,
    Fraction,
    LessThan,
    GreaterThan,
    Equal,
    NotEqual,
    Log
}

进一步阅读

  1. 韩文数字
  2. 大韩数字
  3. 维基百科 - 韩语数字
  4. 韩语数字参考

待办事项

  • 为纯韩语数字添加词形变化
  • 添加计数器枚举和映射
  • 添加 API 函数以获取一种术语的计数器
  • 在 README 中添加计数器信息

依赖关系

~0.8–1.1MB
~22K SLoC