大家在工作中经常遇到需要将数据转换成汉字的情况,比如 1234转为 一千二百三十四的形式
代码如下:
1、定义变量
var chnNumChar = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
var chnUnitSection = ["", "万", "亿", "万亿", "亿亿"];
var chnUnitChar = ["", "十", "百", "千"];
2、获取中文
/**
* 获取中文
* @param num
* @returns {*}
*/
SectionToChinese: function (section) {
var ori = section;
var strIns = '';
var chnStr = '';
var unitPos = 0;
var zero = true;
while (section > 0) {
var v = section % 10;
if (v === 0) {
if (!zero) {
zero = true;
chnStr = this.chnNumChar[v] + chnStr;
}
} else {
zero = false;
strIns = this.chnNumChar[v];
strIns += this.chnUnitChar[unitPos];
chnStr = strIns + chnStr;
}
unitPos++;
section = Math.floor(section / 10);
}
if (ori < 20) {
chnStr = chnStr.replace('一十', '十');
}
return chnStr;
}
3、 数字转中文
/**
* 数字转中文
* @param num
* @returns {*}
*/
numberToChanie: function (num) {
var unitPos = 0;
var strIns = '', chnStr = '';
var needZero = false;
if (num === 0) {
return JsUlits.chnNumChar[0];
}
while (num > 0) {
var section = num % 10000;
if (needZero) {
chnStr = this.chnNumChar[0] + chnStr;
}
strIns = this.SectionToChinese(section);
strIns += (section !== 0) ? this.chnUnitSection[unitPos] : this.chnUnitSection[0];
chnStr = strIns + chnStr;
needZero = (section < 1000) && (section > 0);
num = Math.floor(num / 10000);
unitPos++;
}
return chnStr;
}