js数字转换为对应的中文数字
时间: 2024-04-30 16:17:08 浏览: 81
JavaScript实现把数字转换成中文
5星 · 资源好评率100%
可以使用下面这段代码实现将 JavaScript 数字转换为对应的中文数字:
```javascript
function numberToChinese(num) {
if (!/^\d*(\.\d*)?$/.test(num)) return "非法数字";
let CN_NUMS = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
let CN_UNIT = ["", "十", "百", "千", "万", "亿", "兆"];
let CN_ZERO = "零";
let integerStr, decimalStr, chineseStr = "";
let parts = num.toString().split(".");
if (parts.length > 1) {
integerStr = parts[0];
decimalStr = parts[1];
} else {
integerStr = num.toString();
decimalStr = "";
}
if (parseInt(integerStr, 10) > 0) {
let zeroCount = 0;
for (let i = 0; i < integerStr.length; i++) {
let p = integerStr.length - i - 1;
let d = parseInt(integerStr.charAt(i), 10);
let q = p / 4;
let m = p % 4;
if (d === 0) {
zeroCount++;
} else {
if (zeroCount > 0) {
chineseStr += CN_NUMS[0];
}
zeroCount = 0;
chineseStr += CN_NUMS[d] + CN_UNIT[m];
}
if (m === 0 && zeroCount < 4) {
chineseStr += CN_UNIT[4 + q];
zeroCount = 0;
}
}
chineseStr += CN_NUMS[0] + CN_UNIT[0];
}
if (decimalStr !== "") {
for (let i = 0; i < decimalStr.length; i++) {
let d = parseInt(decimalStr.charAt(i), 10);
chineseStr += CN_NUMS[d];
}
}
if (chineseStr === "") {
chineseStr += CN_ZERO;
}
return chineseStr;
}
```
这个函数接受一个数字参数 `num`,并将其转换为对应的中文数字。例如,`numberToChinese(1234567890)` 将返回 `"一十二亿三千四百五十六万七千八百九十"`。
阅读全文