很多语言 进行浮点运算时都不准确,js也是,计算时候借助一些库会方便计算
你们尽管去研究底层,而我只想快速的解决问题
一个简单的浮点计算库:
https://github.com/nefe/number-precision
- 下面是一个简单库的例子 进行简单的 加减乘除
<script src="./index.iife.js"> </script>
// 1、加法
console.log( NP.plus(0.1,0.3) ) // 0.4
console.log( NP.plus("0.1","0.3") ) // 0.4
// 2、减法
console.log( NP.minus(1.0, 0.9) ) // 0.1
console.log( NP.minus("1.0", "0.9") ) // 0.1
// 3、乘法
console.log(NP.times(3,0.3)) // 0.9
console.log(NP.times("3","0.3")) // 0.9
// 4、除法
console.log(NP.divide(1.21,1.1)) // 1.1
console.log(NP.divide("1.21","1.1")) // 1.1
// 5、返回有效小数个数
console.log(NP.digitLength(1234.56789)) //5
console.log(NP.digitLength("1234.56789")) //5
// 6、把小数转成整数
console.log(NP.float2Fixed(23.01)) //2301
console.log(NP.float2Fixed("23.01")) //2301
// 7、保留3位小数进行 四舍五入
console.log(NP.round(0.1056, 3)) // 0.106
console.log(NP.round("0.1056","3")) // 0.106
// 综合运算 0.2 + 0.35 * 0.87 + 2.3 / 0.78
var value = NP.plus( 0.2,NP.times(0.35,0.87),NP.divide(2.3,0.78) )
console.log(value) // 3.453217948717949