SOURCE

const floatingPointProcessing = (floatOne,floatTwo,calculation,numberOfDigits=2) => {
	var finalResults = 0
	// 得到第一个数据的小数点位置
	var floatOneLength = String(floatOne).length- (String(floatOne).indexOf('.') + 1)
	var floatTwoLength = String(floatTwo).length- (String(floatTwo).indexOf('.') + 1)

	// 判断两个数据那个小数点位数多
	var bigNumber = null
	if(floatOneLength>floatTwoLength){
		bigNumber = floatOneLength
	}else{
		bigNumber = floatTwoLength

	}
	// 计算倍数
	var multiple = 1
	for(var i = 1;i<bigNumber;i++){
		multiple = multiple*10
	}
	// 计算最终结果

	if(calculation === '+'){
		finalResults = (Number(floatOne)*multiple + Number(floatTwo)*multiple)/multiple
	}else if(calculation === '-'){
		finalResults = (Number(floatOne)*multiple - Number(floatTwo)*multiple)/multiple
	}else if(calculation === '*'){
		finalResults = (Number(floatOne)*multiple * Number(floatTwo)*multiple)/multiple

	}else if(calculation === '/'){
		finalResults = (Number(floatOne)*multiple / Number(floatTwo)*multiple)/multiple

	}else{
		finalResults = 0
	}
	finalResults = finalResults.toFixed(Number(numberOfDigits))
	return finalResults

}
console.log(typeof floatingPointProcessing(100.111111,0.9,'-',5))
console.log(floatingPointProcessing(10.111111,12.123456789,'-',3))
console 命令行工具 X clear

                    
>
console