數字轉中文(大寫,小寫)數字,金額

 

原網站

https://cnwhy.github.io/nzh

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)

數字轉金額

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章