Skip to content
数字转中文(大写,小写)数字,金额。
JavaScript HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
demo
dist
docs Update _sidebar.md Jul 13, 2018
src 修正 单位千左侧有0时的插零规则 Dec 12, 2018
test
.gitattributes
.gitignore add homepage Jun 20, 2017
.nojekyll 优化在线文档 May 18, 2017
.travis.yml edit ci Nov 12, 2017
README.md
bower.json
cn.js 完善测试,构建 Feb 20, 2017
gulpfile.js up build Jul 25, 2018
hk.js 完善测试,构建 Feb 20, 2017
index.html
nzh.js code format Apr 9, 2018
package.json

README.md

Nzh

Nzh 适用于需要转换阿拉伯数字中文数字的场景。
特点如下:

  • 以字符串的方式转换,没有超大数及浮点数等问题(请自行对原数据进行四舍五入等操作)
  • 支持科学记数法字符串的转换
  • 支持口语化
  • 支持自定义转换(不论是,还是都可以用)
  • 对超大数支持用争议教少的万万亿代替亿亿
  • 当然,你还可以把中文数字再转回阿拉伯数字

安装

$ npm install nzh --save
$ bower install nzh --save

引用

var Nzh = require("nzh");
var nzhcn = require("nzh/cn"); //直接使用简体中文
var nzhhk = require("nzh/hk"); //繁体中文

注: 浏览器直接引用请使用 dist/文件夹中的文件 (适配CMD,AMD);

示例

var nzhcn = Nzh.cn;                 // 使用简体中文,  另外有 Nzh.hk -- 繁体中文

nzhcn.encodeS(100111);              // 转中文小写 >> 十万零一百一十一
nzhcn.encodeB(100111);              // 转中文大写 >> 壹拾万零壹佰壹拾壹
nzhcn.encodeS("1.23456789e+21");    // 科学记数法字符串 >> 十二万三千四百五十六万万七千八百九十万亿
nzhcn.toMoney("100111.11");         // 转中文金额 >> 人民币壹拾万零壹佰壹拾壹元壹角壹分

API

Nzh.cn / Nzh.hk

为方便使用,默认实现了两个对像:

  • 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.cnNzh.hk中的encodeS方法默认 true
  • ww: "万万"化开关, 默认值为 true
  • complete: 输出完整金额开关, toMoney 函数专用配置, 默认 false
  • outSymbol: 输出金额前缀字符, toMoney 函数专用配置, 默认 true

new Nzh(langs) 自定义

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)

数字转中文

nzh.decode(zh_num,options)

中文转数字

nzh.toMoney(num,options)

数字转金额

参考资料

You can’t perform that action at this time.