企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# [Nzh](https://blog.whyoop.com/nzh/docs/#/?id=nzh) `Nzh`适用于需要转换**阿拉伯数字**与**中文数字**的场景。 特点如下: * 以字符串的方式转换,没有超大数及浮点数等问题(请自行对原数据进行四舍五入等操作) * 支持科学记数法字符串的转换 * 支持口语化 * 支持自定义转换(不论是`兆`,`京`还是`厘`都可以用) * 对超大数支持用争议教少的`万万亿`代替`亿亿` * 当然,你还可以把中文数字再转回阿拉伯数字 ## [安装](https://blog.whyoop.com/nzh/docs/#/?id=%e5%ae%89%e8%a3%85) ~~~ $ npm install nzh --save $ bower install nzh --save ~~~ ## [引用](https://blog.whyoop.com/nzh/docs/#/?id=%e5%bc%95%e7%94%a8) ~~~ var Nzh = require("nzh"); var nzhcn = require("nzh/cn"); //直接使用简体中文 var nzhhk = require("nzh/hk"); //繁体中文 ~~~ > 注: 浏览器直接引用请使用`dist/`文件夹中的文件 (适配CMD,AMD); ## [示例](https://blog.whyoop.com/nzh/docs/#/?id=%e7%a4%ba%e4%be%8b) ~~~ var nzhcn = Nzh.cn; // 使用简体中文, 另外有 Nzh.hk -- 繁体中文 nzhcn.encodeS(100111); // 转中文小写 >> 十万零一百一十一 nzhcn.encodeB(100111); // 转中文大写 >> 壹拾万零壹佰壹拾壹 nzhcn.encodeS("1.23456789e+21"); // 科学记数法字符串 >> 十二万三千四百五十六万万七千八百九十万亿 nzhcn.toMoney("100111.11"); // 转中文金额 >> 人民币壹拾万零壹佰壹拾壹元壹角壹分 ~~~ ## [API](https://blog.whyoop.com/nzh/docs/#/?id=api) ### [Nzh.cn / Nzh.hk](https://blog.whyoop.com/nzh/docs/#/?id=nzhcn-nzhhk) 为方便使用,默认实现了两个对像: * `Nzh.cn`简体中文 * `Nzh.hk`正体中文(繁体中文) 都包含以下方法: * `encodeS(num,options)`转中文小写 * `encodeB(num,options)`转中文大写 * `toMoney(num,options)`转中文金额 * `decodeS(zh_num)`中文小写转数字 * `decodeB(zh_num)`中文大写转数字 ~~~ // options.tenMin ~~~ // encodeS默认true nzhcn.encodeS("13.5"); // 十三点五 nzhcn.encodeS("13.5", {tenMin:false}); // 一十三点五 // encodeB默人false nzhcn.encodeB("13.5"); // 壹拾叁點伍 nzhcn.encodeB("13.5", {tenMin:true}); // 拾叁點伍 // options.ww //Nzh.cn和Nzh.hk未引入兆、京等单位,超千万亿位时,默认以争议较少的万万亿为单位 nzhcn.encodeS(1e16); // 一万万亿 nzhcn.encodeS(1e16, {ww: false}); // 一亿亿 // options.complete nzhcn.toMoney("1"); //人民币壹元整 nzhcn.toMoney("1",{complete:true}); //人民币壹元零角零分 nzhcn.toMoney("0.1"); //人民币壹角 nzhcn.toMoney("0.1",{complete:true}); //人民币零元壹角零分 //outSymbol 默认 true nzhcn.toMoney("1"); //人民币壹元整 nzhcn.toMoney("1",{outSymbol:false}); //壹元整 ~~~ ### options 说明 - `tenMin`: 十的口语化开关, 默认值为 `false` - *注: `Nzh.cn`和`Nzh.hk`中的`encodeS`方法默认 `true`* - `ww`: "万万"化开关, 默认值为 `true` - `complete`: 输出完整金额开关, `toMoney` 函数专用配置, 默认 `false` - `outSymbol`: 输出金额前缀字符, `toMoney` 函数专用配置, 默认 `true` ### new Nzh(langs) 自定义 ```javascript var nzh = new Nzh({ ch: "〇壹贰叁肆伍陆柒捌玖", // 数字字符 ch_u: "个十百千万亿兆京", // 数位单位字符,万以下十进制,万以上万进制,个位不能省略 ch_f: "负", // 负字符 ch_d: "点", // 小数点字符 m_u: "元角分厘", // 金额单位 m_t: "人民币", // 金额前缀 m_z: "正" // 金额无小数后缀 }); nzh.encode("10001000000000000"); // 壹京〇壹兆 nzh.decode("壹兆"); // 1000000000000 nzh.toMoney("1.234"); // 人民币壹元贰角叁分肆厘 ~~~ #### [nzh.encode(num,options)](https://blog.whyoop.com/nzh/docs/#/?id=nzhencodenumoptions) 数字转中文 #### [nzh.decode(zh\_num,options)](https://blog.whyoop.com/nzh/docs/#/?id=nzhdecodezh_numoptions) 中文转数字 #### [nzh.toMoney(num,options)](https://blog.whyoop.com/nzh/docs/#/?id=nzhtomoneynumoptions) 数字转金额