实现以下函数,实现如下功能,数字最大为100亿,val无效则抛错const num2c = (val: any) => {} num2c(1234) // ['1,234', '1234'] num2c(12345) // ['12,345', '1万2345'] num2c(123456) // ['123,456', '12万2345'] num2c(1234567) // ['1,234,567', '123万4567'] num2c(12345678) // ['12,345,678', '1234万5678'] num2c(123456789) // ['123,456,789', '1亿2345万6789']
时间: 2023-03-07 12:30:11 浏览: 93
函数实现如下:const num2c = (val: any) => {
if (isNaN(val) || val < 0 || val > 10000000000) {
throw new Error('invalid input');
} let result = [];
let numString = val.toString();
let numLength = numString.length;
let index = 0; while (index < numLength) {
if (index + 4 < numLength) {
result.unshift(numString.substring(numLength - 4 - index, numLength - index));
result.unshift(`${numString.substring(numLength - 4 - index, numLength - 4 - index + 1)}亿`);
} else if (index + 4 === numLength) {
result.unshift(numString.substring(numLength - 4 - index, numLength - index));
result.unshift(`${numString.substring(numLength - 4 - index, numLength - 4 - index + 1)}万`);
} else {
result.unshift(numString.substring(0, numLength - index));
}
index = index + 4;
}
return result;
};