Crate chinese_number

Source
Expand description

§Chinese Number

Convert primitive numbers to Chinese numbers, or parse Chinese numbers to primitive numbers.

This crate can convert Rust’s primitive number data types to Chinese numbers as strings. For example, 123 can be converted into 一二三, 一百二十三 or 壹佰貳拾參. It supports both Traditional Chinese and Simple Chinese, and it supports different methods to count the scale as well. Also, Chinese numbers in strings can be parsed to primitive number data types.

§Example

use chinese_number::{ChineseCase, ChineseCountMethod, ChineseVariant, NumberToChinese, ChineseToNumber};

assert_eq!("一二三", 123i8.to_chinese_naive(ChineseVariant::Traditional, ChineseCase::Lower));

assert_eq!("壹佰貳拾參", 123i8.to_chinese(ChineseVariant::Traditional, ChineseCase::Upper, ChineseCountMethod::TenThousand).unwrap());
assert_eq!("壹佰贰拾叁", 123i8.to_chinese(ChineseVariant::Simple, ChineseCase::Upper, ChineseCountMethod::TenThousand).unwrap());

assert_eq!("一百二十三", 123i8.to_chinese(ChineseVariant::Traditional, ChineseCase::Lower, ChineseCountMethod::TenThousand).unwrap());

assert_eq!("一極二載三正四澗五溝六穰七秭八垓九京零一億二萬三千四百五十六", 1234567890123456i64.to_chinese(ChineseVariant::Traditional, ChineseCase::Lower, ChineseCountMethod::Low).unwrap());
assert_eq!("十二穰三千四百五十六秭七千八百九十垓一千二百三十四京五千六百七十八兆九千零一十二億三千四百五十六萬七千八百九十", 123456789012345678901234567890i128.to_chinese(ChineseVariant::Traditional, ChineseCase::Lower, ChineseCountMethod::TenThousand).unwrap());
assert_eq!("十二萬三千四百五十六京七千八百九十萬一千二百三十四兆五千六百七十八萬九千零一十二億三千四百五十六萬七千八百九十", 123456789012345678901234567890i128.to_chinese(ChineseVariant::Traditional, ChineseCase::Lower, ChineseCountMethod::Middle).unwrap());
assert_eq!("十二萬三千四百五十六億七千八百九十萬一千二百三十四兆五千六百七十八萬九千零一十二億三千四百五十六萬七千八百九十", 123456789012345678901234567890i128.to_chinese(ChineseVariant::Traditional, ChineseCase::Lower, ChineseCountMethod::High).unwrap());

assert_eq!("一角二分", 0.12f64.to_chinese(ChineseVariant::Traditional, ChineseCase::Lower, ChineseCountMethod::TenThousand).unwrap());

assert_eq!(123i8, "一二三".to_number_naive().unwrap());

assert_eq!(123i8, "一百二十三".to_number(ChineseCountMethod::TenThousand).unwrap());
assert_eq!(-30303i16, "負三萬零三百零三".to_number(ChineseCountMethod::TenThousand).unwrap());
assert_eq!(3212345678u32, "三十二億一千二百三十四萬五千六百七十八".to_number(ChineseCountMethod::TenThousand).unwrap());
assert_eq!(10010001001001001000u64, "一千零一京零一兆零一十億零一百萬一千".to_number(ChineseCountMethod::TenThousand).unwrap());

assert_eq!(1000000u64, "一兆".to_number(ChineseCountMethod::Low).unwrap());
assert_eq!(1000000000000u64, "一兆".to_number(ChineseCountMethod::TenThousand).unwrap());
assert_eq!(10000000000000000u64, "一兆".to_number(ChineseCountMethod::Middle).unwrap());
assert_eq!(10000000000000000u64, "一兆".to_number(ChineseCountMethod::High).unwrap());

assert_eq!(120u64, "一百二".to_number(ChineseCountMethod::TenThousand).unwrap());
assert_eq!(2300u64, "兩千三".to_number(ChineseCountMethod::TenThousand).unwrap());
assert_eq!(34000u64, "三萬四".to_number(ChineseCountMethod::TenThousand).unwrap());
assert_eq!(105000u64, "十萬五".to_number(ChineseCountMethod::TenThousand).unwrap());
assert_eq!(150000000u64, "一億五".to_number(ChineseCountMethod::TenThousand).unwrap());

§No Std

Disable the default features to compile this crate without std.

[dependencies.chinese-number]
version = "*"
default-features = false
features = ["number-to-chinese", "chinese-to-number"]

Enums§

ChineseCase
大寫或小寫數字。
ChineseCountMethod
根據 五經算術 將大的單位分為 上數 (High)、中數 (Middle)、下數 (Low) 三種類型,再加上現代使用的 萬進 (TenThousand)。
ChineseToNumberErrorchinese-to-number
將中文數字轉成數值時發生的錯誤。
ChineseVariant
The different writing systems used for the Chinese language. Traditional Chinese (繁體中文) or Simple Chinese (简体中文).
NumberToChineseErrornumber-to-chinese
將數值轉成中文數字時發生的錯誤。

Traits§

ChineseToNumberchinese-to-number
讓 Rust 程式語言的字串型別擁有將中文數字轉成數值的能力。
NumberToChinesenumber-to-chinese
讓 Rust 程式語言的所有基本數值型別擁有轉成中文數字的能力。

Functions§

from_chinese_to_f32_highchinese-to-number
將中文數字轉成 f32 浮點數。使用 「上數」
from_chinese_to_f32_lowchinese-to-number
將中文數字轉成 f32 浮點數。使用 「下數」
from_chinese_to_f32_middlechinese-to-number
將中文數字轉成 f32 浮點數。使用 「中數」
from_chinese_to_f32_naivechinese-to-number
將中文數字轉成 f32 浮點數。不進行單位計算。
from_chinese_to_f32_ten_thousandchinese-to-number
將中文數字轉成 f32 浮點數。使用 「萬進」
from_chinese_to_f64_highchinese-to-number
將中文數字轉成 f64 浮點數。使用 「上數」
from_chinese_to_f64_lowchinese-to-number
將中文數字轉成 f64 浮點數。使用 「下數」
from_chinese_to_f64_middlechinese-to-number
將中文數字轉成 f64 浮點數。使用 「中數」
from_chinese_to_f64_naivechinese-to-number
將中文數字轉成 f64 浮點數。不進行單位計算。
from_chinese_to_f64_ten_thousandchinese-to-number
將中文數字轉成 f64 浮點數。使用 「萬進」
from_chinese_to_i8chinese-to-number
將中文數字轉成 i8 整數。
from_chinese_to_i8_naivechinese-to-number
將中文數字轉成 i8 整數。不進行單位計算。
from_chinese_to_i16chinese-to-number
將中文數字轉成 i16 整數。
from_chinese_to_i16_naivechinese-to-number
將中文數字轉成 i16 整數。不進行單位計算。
from_chinese_to_i32_highchinese-to-number
將中文數字轉成 i32 整數。使用 「上數」
from_chinese_to_i32_lowchinese-to-number
將中文數字轉成 i32 整數。使用 「下數」
from_chinese_to_i32_middlechinese-to-number
將中文數字轉成 i32 整數。使用 「中數」
from_chinese_to_i32_naivechinese-to-number
將中文數字轉成 i32 整數。不進行單位計算。
from_chinese_to_i32_ten_thousandchinese-to-number
將中文數字轉成 i32 整數。使用 「萬進」
from_chinese_to_i64_highchinese-to-number
將中文數字轉成 i64 整數。使用 「上數」
from_chinese_to_i64_lowchinese-to-number
將中文數字轉成 i64 整數。使用 「下數」
from_chinese_to_i64_middlechinese-to-number
將中文數字轉成 i64 整數。使用 「中數」
from_chinese_to_i64_naivechinese-to-number
將中文數字轉成 i64 整數。不進行單位計算。
from_chinese_to_i64_ten_thousandchinese-to-number
將中文數字轉成 i64 整數。使用 「萬進」
from_chinese_to_i128_highchinese-to-number
將中文數字轉成 i128 整數。使用 「上數」
from_chinese_to_i128_lowchinese-to-number
將中文數字轉成 i128 整數。使用 「下數」
from_chinese_to_i128_middlechinese-to-number
將中文數字轉成 i128 整數。使用 「中數」
from_chinese_to_i128_naivechinese-to-number
將中文數字轉成 i128 整數。不進行單位計算。
from_chinese_to_i128_ten_thousandchinese-to-number
將中文數字轉成 i128 整數。使用 「萬進」
from_chinese_to_isize_highchinese-to-number
將中文數字轉成 isize 整數。使用 「上數」
from_chinese_to_isize_lowchinese-to-number
將中文數字轉成 isize 整數。使用 「下數」
from_chinese_to_isize_middlechinese-to-number
將中文數字轉成 isize 整數。使用 「中數」
from_chinese_to_isize_naivechinese-to-number
將中文數字轉成 isize 整數。不進行單位計算。
from_chinese_to_isize_ten_thousandchinese-to-number
將中文數字轉成 isize 整數。使用 「萬進」
from_chinese_to_u8chinese-to-number
將中文數字轉成 u8 整數。
from_chinese_to_u8_naivechinese-to-number
將中文數字轉成 u8 整數。不進行單位計算。
from_chinese_to_u16chinese-to-number
將中文數字轉成 u16 整數。
from_chinese_to_u16_naivechinese-to-number
將中文數字轉成 u16 整數。不進行單位計算。
from_chinese_to_u32_highchinese-to-number
將中文數字轉成 u32 整數。使用 「上數」
from_chinese_to_u32_lowchinese-to-number
將中文數字轉成 u32 整數。使用 「下數」
from_chinese_to_u32_middlechinese-to-number
將中文數字轉成 u32 整數。使用 「中數」
from_chinese_to_u32_naivechinese-to-number
將中文數字轉成 u32 整數。不進行單位計算。
from_chinese_to_u32_ten_thousandchinese-to-number
將中文數字轉成 u32 整數。使用 「萬進」
from_chinese_to_u64_highchinese-to-number
將中文數字轉成 u64 整數。使用 「上數」
from_chinese_to_u64_lowchinese-to-number
將中文數字轉成 u64 整數。使用 「下數」
from_chinese_to_u64_middlechinese-to-number
將中文數字轉成 u64 整數。使用 「中數」
from_chinese_to_u64_naivechinese-to-number
將中文數字轉成 u64 整數。不進行單位計算。
from_chinese_to_u64_ten_thousandchinese-to-number
將中文數字轉成 u64 整數。使用 「萬進」
from_chinese_to_u128_highchinese-to-number
將中文數字轉成 u128 整數。使用 「上數」
from_chinese_to_u128_lowchinese-to-number
將中文數字轉成 u128 整數。使用 「下數」
from_chinese_to_u128_middlechinese-to-number
將中文數字轉成 u128 整數。使用 「中數」
from_chinese_to_u128_naivechinese-to-number
將中文數字轉成 u128 整數。不進行單位計算。
from_chinese_to_u128_ten_thousandchinese-to-number
將中文數字轉成 u128 整數。使用 「萬進」
from_chinese_to_usize_highchinese-to-number
將中文數字轉成 usize 整數。使用 「上數」
from_chinese_to_usize_lowchinese-to-number
將中文數字轉成 usize 整數。使用 「下數」
from_chinese_to_usize_middlechinese-to-number
將中文數字轉成 usize 整數。使用 「中數」
from_chinese_to_usize_naivechinese-to-number
將中文數字轉成 usize 整數。不進行單位計算。
from_chinese_to_usize_ten_thousandchinese-to-number
將中文數字轉成 usize 整數。使用 「萬進」
from_f32_to_chinese_highnumber-to-chinese
f32 浮點數轉成中文數字,使用 「上數」
from_f32_to_chinese_lownumber-to-chinese
f32 浮點數轉成中文數字,使用 「下數」。數值的絕對值不能大於或等於 1_0000_0000_0000_0000
from_f32_to_chinese_middlenumber-to-chinese
f32 浮點數轉成中文數字,使用 「中數」
from_f32_to_chinese_naivenumber-to-chinese
f32 整數轉成中文數字,不進行單位計算。
from_f32_to_chinese_ten_thousandnumber-to-chinese
f32 浮點數轉成中文數字,使用 「萬進」
from_f64_to_chinese_highnumber-to-chinese
f64 浮點數轉成中文數字,使用 「上數」
from_f64_to_chinese_lownumber-to-chinese
f64 浮點數轉成中文數字,使用 「下數」。數值的絕對值不能大於或等於 1_0000_0000_0000_0000
from_f64_to_chinese_middlenumber-to-chinese
f64 浮點數轉成中文數字,使用 「中數」。數值的絕對值不能大於或等於 1e96
from_f64_to_chinese_naivenumber-to-chinese
f64 浮點數轉成中文數字,不進行單位計算。
from_f64_to_chinese_ten_thousandnumber-to-chinese
f64 浮點數轉成中文數字,使用 「萬進」。數值的絕對值不能大於或等於 1e52
from_i8_to_chinesenumber-to-chinese
i8 整數轉成中文數字。
from_i8_to_chinese_naivenumber-to-chinese
i8 整數轉成中文數字。不進行單位計算。
from_i16_to_chinesenumber-to-chinese
i16 整數轉成中文數字。
from_i16_to_chinese_naivenumber-to-chinese
i16 整數轉成中文數字。不進行單位計算。
from_i32_to_chinese_highnumber-to-chinese
i32 整數轉成中文數字,使用 「上數」
from_i32_to_chinese_lownumber-to-chinese
i32 整數轉成中文數字,使用 「下數」
from_i32_to_chinese_middlenumber-to-chinese
i32 整數轉成中文數字,使用 「中數」
from_i32_to_chinese_naivenumber-to-chinese
i32 整數轉成中文數字。不進行單位計算。
from_i32_to_chinese_ten_thousandnumber-to-chinese
i32 整數轉成中文數字,使用 「萬進」
from_i64_to_chinese_highnumber-to-chinese
i64 整數轉成中文數字,使用 「上數」
from_i64_to_chinese_lownumber-to-chinese
i64 整數轉成中文數字,使用 「下數」。數值的絕對值不能大於或等於 1_0000_0000_0000_0000
from_i64_to_chinese_middlenumber-to-chinese
i64 整數轉成中文數字,使用 「中數」
from_i64_to_chinese_naivenumber-to-chinese
i64 整數轉成中文數字。不進行單位計算。
from_i64_to_chinese_ten_thousandnumber-to-chinese
i64 整數轉成中文數字,使用 「萬進」
from_i128_to_chinese_highnumber-to-chinese
i128 整數轉成中文數字,使用 「上數」
from_i128_to_chinese_lownumber-to-chinese
i128 整數轉成中文數字,使用 「下數」。數值的絕對值不能大於或等於 1_0000_0000_0000_0000
from_i128_to_chinese_middlenumber-to-chinese
i128 整數轉成中文數字,使用 「中數」
from_i128_to_chinese_naivenumber-to-chinese
i128 整數轉成中文數字,不進行單位計算。
from_i128_to_chinese_ten_thousandnumber-to-chinese
i128 整數轉成中文數字,使用 「萬進」
from_isize_to_chinese_highnumber-to-chinese
isize 整數轉成中文數字,使用 「上數」
from_isize_to_chinese_lownumber-to-chinese
isize 整數轉成中文數字,使用 「下數」。數值的絕對值不能大於或等於 1_0000_0000_0000_0000
from_isize_to_chinese_middlenumber-to-chinese
isize 整數轉成中文數字,使用 「中數」
from_isize_to_chinese_naivenumber-to-chinese
isize 整數轉成中文數字,不進行單位計算。
from_isize_to_chinese_ten_thousandnumber-to-chinese
isize 整數轉成中文數字,使用 「萬進」
from_u8_to_chinesenumber-to-chinese
u8 整數轉成中文數字。
from_u8_to_chinese_naivenumber-to-chinese
u8 整數轉成中文數字,不進行單位計算。
from_u16_to_chinesenumber-to-chinese
u16 整數轉成中文數字。
from_u16_to_chinese_naivenumber-to-chinese
u16 整數轉成中文數字,不進行單位計算。
from_u32_to_chinese_highnumber-to-chinese
u32 整數轉成中文數字,使用 「上數」
from_u32_to_chinese_lownumber-to-chinese
u32 整數轉成中文數字,使用 「下數」
from_u32_to_chinese_middlenumber-to-chinese
u32 整數轉成中文數字,使用 「中數」
from_u32_to_chinese_naivenumber-to-chinese
u32 整數轉成中文數字,不進行單位計算。
from_u32_to_chinese_ten_thousandnumber-to-chinese
u32 整數轉成中文數字,使用 「萬進」
from_u64_to_chinese_highnumber-to-chinese
u64 整數轉成中文數字,使用 「上數」
from_u64_to_chinese_lownumber-to-chinese
u64 整數轉成中文數字,使用 「下數」。數值不能大於或等於 1_0000_0000_0000_0000
from_u64_to_chinese_middlenumber-to-chinese
u64 整數轉成中文數字,使用 「中數」
from_u64_to_chinese_naivenumber-to-chinese
u32 整數轉成中文數字,不進行單位計算。
from_u64_to_chinese_ten_thousandnumber-to-chinese
u64 整數轉成中文數字,使用 「萬進」
from_u128_to_chinese_highnumber-to-chinese
u128 整數轉成中文數字,使用 「上數」
from_u128_to_chinese_lownumber-to-chinese
u128 整數轉成中文數字,使用 「下數」。數值不能大於或等於 1_0000_0000_0000_0000
from_u128_to_chinese_middlenumber-to-chinese
u128 整數轉成中文數字,使用 「中數」
from_u128_to_chinese_naivenumber-to-chinese
u128 整數轉成中文數字,不進行單位計算。
from_u128_to_chinese_ten_thousandnumber-to-chinese
u128 整數轉成中文數字,使用 「萬進」
from_usize_to_chinese_highnumber-to-chinese
usize 整數轉成中文數字,使用 「上數」
from_usize_to_chinese_lownumber-to-chinese
usize 整數轉成中文數字,使用 「下數」。數值不能大於或等於 1_0000_0000_0000_0000
from_usize_to_chinese_middlenumber-to-chinese
usize 整數轉成中文數字,使用 「中數」
from_usize_to_chinese_naivenumber-to-chinese
usize 整數轉成中文數字,不進行單位計算。
from_usize_to_chinese_ten_thousandnumber-to-chinese
usize 整數轉成中文數字,使用 「萬進」