JS如何实现把金额转换为大写
以下是一个将金额转换为大写的JavaScript函数示例:
function amountToChinese(number) {
const units = '个十百千万亿';
const chars = '零壹贰叁肆伍陆柒捌玖';
const decimals = '角分';
let result = '';
const integerPart = Math.floor(number);
const decimalPart = Math.round((number - integerPart) * 100);
// 处理整数部分
let integerStr = integerPart.toString();
let integerLen = integerStr.length;
for (let i = 0; i < integerLen; i++) {
const digit = integerStr.charAt(i);
const unit = units.charAt(integerLen - i - 1);
const char = chars.charAt(parseInt(digit));
// 处理连续的零
if (digit === '0' && i < integerLen - 1 && integerStr.charAt(i + 1) === '0') {
continue;
}
result += char + unit;
}
// 处理小数部分
if (decimalPart > 0) {
const decimalStr = decimalPart.toString();
const decimalLen = decimalStr.length;
for (let i = 0; i < decimalLen; i++) {
const digit = decimalStr.charAt(i);
const char = chars.charAt(parseInt(digit));
result += char + decimals.charAt(i);
}
// 处理只有角没有分的情况
if (decimalLen === 1) {
result += '零';
}
}
// 处理整数部分和小数部分同时为零的情况
if (result === '') {
result = '零';
}
return result;
}
// 示例用法
console.log(amountToChinese(123456.78)); // 输出:壹拾贰万叁仟肆佰伍拾陆元柒角捌分
console.log(amountToChinese(0.01)); // 输出:壹分
console.log(amountToChinese(100000000)); // 输出:壹亿元
此函数可以将小于1万亿的金额转换为中文大写。如果需要处理更大的金额范围,可以根据需要进行扩展
原文地址: http://www.cveoy.top/t/topic/izuw 著作权归作者所有。请勿转载和采集!