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数字转中文内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript递归函数定义与用法实例分析

    JavaScript递归函数定义与用法实例分析

    这篇文章主要介绍了JavaScript递归函数定义与用法,结合实例形式分析了javascript递归的原理、函数定义、使用方法及操作注意事项,需要的朋友可以参考下
    2019-01-01
  • JavaScript的类型转换(字符转数字 数字转字符)

    JavaScript的类型转换(字符转数字 数字转字符)

    不能把JavaScript中的类型转换看作为强制类型转换。
    2010-08-08
  • javascript实现标签切换代码示例

    javascript实现标签切换代码示例

    本文给大家分享的事tab切换的两段js,均可实现标签切换功能,大家根据自己的需求自由选择
    2016-05-05
  • JavaScript实现动态表格效果

    JavaScript实现动态表格效果

    这篇文章主要为大家详细介绍了JavaScript实现动态表格效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 解决layui前端框架 form表单,table表等内置控件不显示的问题

    解决layui前端框架 form表单,table表等内置控件不显示的问题

    今天小编就为大家分享一篇解决layui前端框架 form表单,table表等内置控件不显示的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 深入理解令牌认证机制(token)

    深入理解令牌认证机制(token)

    这篇文章主要介绍了深入理解令牌认证机制(token),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • JavaScript实现shuffle数组洗牌操作示例

    JavaScript实现shuffle数组洗牌操作示例

    这篇文章主要介绍了JavaScript实现shuffle数组洗牌操作,结合实例形式分析了javascript数组的定义、构造、排序等相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • JS中通过slice()&substring()截取字符串前几位的方法

    JS中通过slice()&substring()截取字符串前几位的方法

    在Javascript使用字符串中,我们不一定需要全部的字符串,这时就需要截取字符串,本文主要介绍js中截取字符串前几位的两种方法:1、使用slice() 方法;2、使用substring() 方法,本文通过示例代码介绍的非常详细,需要的朋友参考下吧
    2023-12-12
  • jQuery实现手风琴特效

    jQuery实现手风琴特效

    这篇文章主要为大家详细介绍了前端js实现手风琴效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • 简单谈谈offsetleft、offsetTop和offsetParent

    简单谈谈offsetleft、offsetTop和offsetParent

    这篇文章主要给大家介绍了offsetleft、offsetTop和offsetParent的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论