js数字转中文两种实现方法

 更新时间:2023年10月14日 09:52:18   作者:世俗ˊ  
在前端开发中有时候会需要到将阿拉伯数字转化为中文,当前做个记录,提供自己之后翻阅,这篇文章主要给大家介绍了关于js数字转中文两种实现方法的相关资料,需要的朋友可以参考下

示例一:

 如果要将数字10、100和1000转换成中文的"十"、"一百"和"一千",

可以使用以下 JavaScript 代码实现:

function numberToChinese(num) {
  const chineseNums = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
  const chineseUnits = ['', '十', '百', '千'];
  if (num === 0) {
    return chineseNums[0];
  }
  let chineseStr = '';
  let unitIndex = 0;
  while (num > 0) {
    const digit = num % 10;
    if (digit !== 0) {
      // 处理非零数字
      chineseStr = chineseNums[digit] + chineseUnits[unitIndex] + chineseStr;
    } else if (chineseStr.charAt(0) !== chineseNums[0]) {
      // 处理连续的零,只保留一个零
      chineseStr = chineseNums[0] + chineseStr;
    }
    num = Math.floor(num / 10);
    unitIndex++;
  }
  return chineseStr;
}
const num1 = 10;
const num2 = 100;
const num3 = 1000;
const chineseNum1 = numberToChinese(num1);
const chineseNum2 = numberToChinese(num2);
const chineseNum3 = numberToChinese(num3);
console.log(chineseNum1); // 十
console.log(chineseNum2); // 一百
console.log(chineseNum3); // 一千

在上述代码中,定义了 numberToChinese 函数,该函数接受一个数字作为参数并返回对应的中文表示。函数内部使用两个数组 chineseNums 和 chineseUnits 分别保存中文数字和单位的文字表示。然后通过取余和除法运算来逐位地转换数字,并根据需要添加对应的中文单位。最后构建出完整的中文字符串并返回。

示例二: 

如果要通过用户输入获取数字,并将其转换为中文表示,可以使用 JavaScript 的 prompt 函数获取用户输入。

代码示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			function numberToChinese(num) {
				const chineseNums = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
				const chineseUnits = ['', '十', '百', '千'];
				if (num === 0) {
					return chineseNums[0];
				}
				let chineseStr = '';
				let unitIndex = 0;
				while (num > 0) {
					const digit = num % 10;
					if (digit !== 0) {
						// 处理非零数字
						chineseStr = chineseNums[digit] + chineseUnits[unitIndex] + chineseStr;
					} else {
						// 处理连续的零,只在个位数为零时添加零
						if (chineseStr.length > 0 && chineseStr.charAt(0) !== chineseNums[0]) {
							chineseStr = chineseNums[0] + chineseStr;
						}
					}
					num = Math.floor(num / 10);
					unitIndex++;
				}
				return chineseStr;
			}
			const input = prompt('请输入一个数字:');
			const num = parseInt(input, 10);
			if (isNaN(num)) {
				console.log('输入无效,请输入一个有效的数字。');
			} else {
				const chineseNum = numberToChinese(num);
				console.log(chineseNum);
			}
		</script>
	</body>
</html>

在上述代码中,通过 prompt 函数弹出一个对话框,提示用户输入一个数字。用户输入的内容被保存在 input 变量中,并通过 parseInt 函数将其转换为整数类型的 num。接下来,检查 num 是否是一个有效的数字。如果不是有效数字,则输出提示信息;否则,调用 numberToChinese 函数将 num 转换为中文表示,并打印结果到控制台。用户运行该代码后,会弹出一个输入框,可以在其中输入想要转换的数字。然后,通过调用 numberToChinese 函数将数字转换成中文,并进行输出。

附:js将字符串转换成数字

1.转换函数

js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)

parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN

2.强制类型转换

还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。

ECMAScript中可用的3种强制类型转换如下:

  • Boolean(value)——把给定的值转换成Boolean型;
  • Number(value)——把给定的值转换成数字(可以是整数或浮点数);
  • String(value)——把给定的值转换成字符串。

用法结果

Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "5.5 ") 5.5
Number( "56 ") 56
Number( "5.6.7 ") NaN
Number(new Object()) NaN
Number(100) 100

Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。

总结

到此这篇关于js数字转中文两种实现方法的文章就介绍到这了,更多相关js数字转中文内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论