前言
在软件开发过程中,涉及金额的显示时,通常需要将阿拉伯数字转换为中文大写数字。这一转换不仅符合金融和票据规范,也能够提高用户体验。虽然该功能的实现并不复杂,但直接调用成熟的插件可显著提升开发效率,减少重复工作。
为简化这一流程,推荐使用 @simo/chinese-uppercase-character——一款简洁高效的插件,可轻松完成数值转换。(点击进入插件主页:OpenHarmony三方库中心仓)如果你已有鸿蒙第三方库插件的使用经验,可直接跳转至“使用”部分,快速集成该功能。
在软件开发过程中,错误和异常难以完全避免。如果在使用本插件时遇到问题或有相关疑问,可通过邮箱 p.simooooo.86@gmail.com 联系插件作者,以获取技术支持和反馈意见,确保顺畅的开发体验。
该插件的使用过程如下:
安装
在DevEco Studio项目下的“终端”中输入如下命令:
ohpm install @simo/chinese-uppercase-character

还请确保当前路径在项目根目录下!安装成功之后,将会有如下显示:

当然,除此之外 ,还可以在这里看到:
至此,我们就完成了第三方库第三方插件的安装 (任何在OpenHarmony三方库中心仓发布的插件均是如此使用)。
使用
在需要使用的组件或页面导入:
import {toChineseUppercaseCharacter} from '@simo/chinese-uppercase-character';
并在目标位置调用以下方法,如:
import {toChineseUppercaseCharacter} from '@simo/chinese-uppercase-character';
@Entry
@Component
struct Index {
@State inputText: string = '';
build() {
Column({ space: 15 }) {
TextInput()
.onChange((value: string) => {
this.inputText = value;
})
Text(toChineseUppercaseCharacter(this.inputText))
}
.padding(10)
}
}
演示如下:
如果数字不符合要求呢?它既会通过return返回错误,还会通过日志输出。例如:
到此,我相信你已经可以正确的使用这个插件了。需要说明的是,插件支持最大单位为“兆”,最小单位为“分”,别超出了。另外,输出的中文大写数字包括“兆”、“亿”、“万”,使用者可以利用这些字符,通过正则表达式来对字符串进行分割。如果对这个非常非常简单的插件的原理感兴趣,可以看下面。
原理
预处理输入
- 统一转换为 字符串格式,确保可以正确操作数字。
- 进行格式校验,剔除非法输入(如非数字字符、不规范的浮点数)。
- 限制转换范围:
- 整数部分不超过 16 位(避免超出计算范围)。
- 小数部分最多保留 2 位(符合常见货币单位)。
整数部分转换
- 采用 分组处理:数字按照四位一组划分,例如
12345678
被分为[1234, 5678]
。 - 每组分别转换为 千、百、十、个位 并添加单位(元、万、亿、兆)。
- 处理 前导零:
- 首个分组去除多余零,例如
0005
转换为五
而不是零零零五
。 - 其他分组的零需保留,以保证正确表达,如
1010
转换为壹仟零壹拾
。
小数部分转换
- 采用 单独处理:
- 角、分单位 仅保留小数点后 最多两位,如
3.20
转换为叁角
。 0.05
需要转换为零伍分
,防止误读成五分
。- 连续零进行优化,例如
1.00
直接转换为壹元整
。
附加格式优化
- 处理 冗余零:
拾零
→拾
仟零
→仟
佰零
→佰
- 确保输出符合金融书写规范,保证可读性。