中文数字转换

  • 将汉字字符串形式的数字(仅限整数)转换为 Dart 的 int 值。

  • 将 Dart 中的整数或者浮点数转换为汉字字符串。

使用方法

final str = '拾壹万叁仟肆佰贰拾壹';
print(ChineseNumber.tryParse(str)); // 113421

final n = 214323232003;
print(n.toSimplifiedChineseNumber()); // 二千一百四十三亿二千三百二十三万二千零三
print(n.toFormalSimplifiedChineseNumber()); // 贰仟壹佰肆拾叁亿贰仟叁佰贰拾叁万贰仟零叁
print(n.toTraditionalChineseNumber()); // 貳仟壹佰肆拾叁億貳仟叁佰貳拾叁萬貳仟零叁

关于代码

这个包参考了 Anton Ivanov 的 Javascript 代码: https://github.com/anton-bot/chinese-numbers-converter.js 我们将其用 Dart 重写,但去掉了一些和本项目无关的内容。

也参考了 Hans Yang 的另一个汉字数字转换包: https://pub.dev/packages/number_to_chinese 但我们将其扩展为可以支持简体中文汉字。

Chinese number parser & converter

  • Convert integer numbers from Chinese character to Dart integer.

  • Convert Dart integer & double values to Chinese character.

Usage

final str = '拾壹万叁仟肆佰贰拾壹';
print(ChineseNumber.tryParse(str)); // 113421

final n = 214323232003;
print(n.toSimplifiedChineseNumber()); // 二千一百四十三亿二千三百二十三万二千零三
print(n.toFormalSimplifiedChineseNumber()); // 贰仟壹佰肆拾叁亿贰仟叁佰贰拾叁万贰仟零叁
print(n.toTraditionalChineseNumber()); // 貳仟壹佰肆拾叁億貳仟叁佰貳拾叁萬貳仟零叁

About

This package is derived from Anton Ivanov's Javascript code: https://github.com/anton-bot/chinese-numbers-converter.js We re-written the code in Dart and removed some useless part.

And Hans Yang's Dart code: https://pub.dev/packages/number_to_chinese We extended his code to Simplified Chinese.

Libraries

chinese_number