最近在做金融类的开发,页面需要一些计算,在计算过程中发现js页面会存在精度问.
例如:
0.1 + 0.2 //0.30000000000000004
2/0.7 //0.48999999999999994
在js之中进行所有计算都会出现类似于上面所说的精度问题。
在js之中若要进行精度要求高的计算是推荐大家使用big.js之中封装好的方法。
这套方法和java中的BigDecimal使用方法比较像。
API:http://mikemcl.github.io/big.js
JS:https://codeload.github.com/MikeMcl/big.js
在这里简单介绍下big.js的使用,首先在引入js。
在js中创建Big对象:x = new Big(9) // '9'
y = new Big(x) // '9'
Big(435.345) // 'new' is optional
new Big('5032485723458348569331745.33434346346912144534543')
new Big('4.321e+4') // '43210'
new Big('-735.0918e-430') // '-7.350918e-428'
通常有上述集中方法,括号中可以放数字,可以放字符串。
进行计算:x.plus(y); //加法 x+y
x.minus(y); //减法 x-y
x.div(y); //除法 x/y
x是一个Big对象,y可以是字符串,数字,Big对象。其余计算和加法类似。结果返回一个Big对象。其余方法详见API,描述很详细。
网友评论