RN小数转中文数字(0.001=>千分之一)

本文介绍了一种将小数转换为中文“分之”形式的方法,如0.0001显示为“万分之一”。该方法适用于不超过100%的小数值,并支持到千万分之一的精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:将小数转成中文表示,例如后台返回0.0001,则显示为万分之一。

不考虑超过100%的情况,并且位数不太长(如果小数位数过长,可以再加兼容代码去处理)。

直接贴代码:

_ChinaNumber = (numberValue) => {
		if(numberValue.indexOf('.') < 0){
			return numberValue;
		}
		var unit = "十百千万十百千"; // 对应单位
		var chineseNumber = "零一二三四五六七八九"; // 汉字数字
		//获取小数点后位数
		var pointNumber = numberValue.split(".")[1].length
		//得到中文单位
		var unitStr = unit.substring(pointNumber - 1, pointNumber);
		//大于5位后面加上万,目前只支持到千万,后需要支持更多需加逻辑判断
		if (pointNumber >= 5) {
			unitStr = unitStr + '万';
		}
		//得到中文值(只支持到万位的数字,超过则显示异常)
		var number = Math.pow(10, pointNumber);
		var rateNumber = numberValue * number;
		var rateLenth = rateNumber.toString().length;
		var rateStr = '';
		//拼接中文值
		for (var index = 0; index < rateLenth; index++) {
			var strIndex = Number(rateNumber.toString().substring(index, index + 1))
			rateStr = rateStr + chineseNumber.substring(strIndex, strIndex + 1);
			if (index + 1 !== rateLenth) {
				rateStr = rateStr + unit.substring(rateLenth - index - 2, rateLenth - index - 1);
			}
		}
		//拼接中文结果
		var chineseValue = unitStr + '分之' + rateStr; // 转换后的汉字金额
		return chineseValue;
	}


目前支持到"千万级"分之"万级"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值