js数字转汉字
时间: 2023-06-28 20:13:02 浏览: 55
以下是将数字转换为汉字的 JavaScript 函数:
```javascript
function numberToChinese(num) {
var digits = '零一二三四五六七八九';
var units = '个十百千万亿';
var result = '';
var numStr = num.toString();
for (var i = 0; i < numStr.length; i++) {
var digit = parseInt(numStr.charAt(i));
var unit = units.charAt(numStr.length - i - 1);
if (digit !== 0) {
result += digits.charAt(digit) + unit;
} else if (unit === '亿' || unit === '万' || numStr.length === 1) {
result += digits.charAt(digit);
}
}
return result;
}
```
使用示例:
```javascript
console.log(numberToChinese(123)); // 一百二十三
console.log(numberToChinese(10000)); // 一万
console.log(numberToChinese(100000000)); // 一亿
```
相关问题
js 数字转汉字
以下是 JavaScript 实现将数字转换为汉字的代码:
```javascript
function numberToChinese(num) {
if (isNaN(num)) return "";
const units = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
const unitChars = ["", "十", "百", "千"];
const bigUnitChars = ["", "万", "亿", "兆"];
let result = "";
let numStr = num.toString();
let len = numStr.length;
let zeroFlag = true;
let pos = 0;
while (len > 0) {
let cur = parseInt(numStr.charAt(pos));
let curChar = units[cur];
let unitChar = unitChars[len - 1];
if (cur === 0) {
if (!zeroFlag) {
result += curChar;
zeroFlag = true;
}
} else {
result += curChar + unitChar;
zeroFlag = false;
}
pos++;
len--;
if (len === 0 && pos < numStr.length) {
let bigUnitChar = bigUnitChars[Math.ceil(pos / 4)];
result += bigUnitChar;
len = numStr.length - pos;
}
}
return result;
}
```
使用方法:
```javascript
console.log(numberToChinese(123456789)); // 输出:一亿二千三百四十五万六千七百八十九
```
js 阿拉伯数字转换中文数字
可以使用以下代码将阿拉伯数字转换为中文数字:
```javascript
function numberToChinese(num) {
var cnNums = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
var cnIntUnits = ["", "万", "亿", "万亿"];
var cnIntRadice = ["", "十", "百", "千"];
var cnDecUnits = ["角", "分", "毫", "厘"];
var cnIntLast = "元";
var maxNum = 999999999999999.9999;
var integerNum;
var chineseStr = "";
var parts;
if (num === "") {
return "";
}
num = parseFloat(num);
if (num >= maxNum) {
return "";
}
if (isNaN(num)) {
return "";
}
integerNum = Math.floor(num);
if (integerNum === 0) {
chineseStr = cnNums[0] + cnIntLast;
return chineseStr;
}
var intStr = integerNum.toString();
var len = intStr.length;
var i, j;
if (len > 15) {
return "";
}
parts = new Array(len);
for (i = 0; i < len; i++) {
parts[i] = parseInt(intStr.charAt(i), 10);
}
var partLen = Math.ceil(len / 4);
var partChinese;
for (i = 0; i < partLen; i++) {
partChinese = "";
for (j = 0; j < 4; j++) {
if (parts[i * 4 + j] === 0) {
continue;
}
partChinese += cnNums[parts[i * 4 + j]] + cnIntRadice[4 - j - 1];
}
partChinese += cnIntUnits[partLen - i - 1];
chineseStr += partChinese;
}
if (num.toString().indexOf(".") !== -1) {
var decNum = num.toString().split(".")[1];
var decLen = decNum.length;
for (i = 0; i < decLen; i++) {
if (i > 3) {
break;
}
chineseStr += cnNums[parseInt(decNum.charAt(i), 10)] + cnDecUnits[i];
}
}
if (chineseStr === "") {
chineseStr += cnNums[0] + cnIntLast;
} else if (num < 1) {
chineseStr = cnNums[0] + chineseStr;
}
return chineseStr;
}
```
使用示例:
```javascript
console.log(numberToChinese(123456789)); // 一亿二千三百四十五万六千七百八十九元
console.log(numberToChinese(100000001)); // 一亿零一元
console.log(numberToChinese(0.5)); // 五角
```