JS:浏览器上大于 e+21 的 大数字处理方式

文章描述了一个名为`changeCount`的方法,用于处理数值转换,确保在科学计数法下保持合理格式。方法中涉及了`newBigNumber`库,`toString`,`indexOf`,`split`等操作,以及自定义的`checkKeXue`函数来处理小数点后的位数。
摘要由CSDN通过智能技术生成
let num = this.changeCount();
changeCount(){
	let count = new BigNumber(this.num).times('1e18').toString()
	if (count.toString().indexOf('e+') > -1) {
		count = this.checkKeXue(count)
	} else {
		count = Number(count).toFixed()
	}
	return count
},
checkKeXue(num) {
	let kstr = num.toString();
	let kFanelStr = ''
	let kArr = []
	let kstrprev = ''
	let kstrlast = ''
	let fanelKstrprev = ''
	let kprevArr = ''
	let kprevStr1 = ''
	let kprevStr2 = ''
	let digitsNum = 0
	console.log(kstr.indexOf('e+') > -1)
	if (kstr.indexOf('e+') > -1) {
		kArr = kstr.split('e+')
		kstrprev = kArr[0]
		console.log(kstrprev)
		if (kstrprev.indexOf('.') > -1) {
			kprevArr = kstrprev.split('.')
			kprevStr1 = kprevArr[0]
			kprevStr2 = kprevArr[1]
			digitsNum = kprevStr2.length
			fanelKstrprev = kprevStr1 + '' + kprevStr2
		} else {
			fanelKstrprev = kstrprev
		}

		kstrlast = kArr[1]
		kFanelStr = fanelKstrprev + '' + this.creatMoreZero(Number(kstrlast) - digitsNum)
		console.log(fanelKstrprev)
		console.log(this.creatMoreZero(Number(kstrlast)))
		console.log(kFanelStr)
	} else {
		kFanelStr = num
	}
	return kFanelStr
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值