# 小数相加
# 题目
为何 0.1 + 0.2 !== 0.3
# 答案
计算机用二进制存储数据。
整数用二进制没有误差,如 9 表示为 1001 。
而有的小数无法用二进制表示,如 0.2 用二进制表示就是 1.10011001100...
所以,累加小数时会出现误差。
这不仅仅是 JS ,所有的计算机语言都这样。
# 扩展
可以使用第三方库 https://www.npmjs.com/package/mathjs
# 安装
npm install mathjs
# 使用
import { create, all } from 'mathjs'
const config = {
number: 'BigNumber',
precision: 20
}
const math = create(all, config);
export default {
methods: {
//开方
numberSqrt: function(arg1){
return math math.sqrt(arg1)
},
//除
numberExcept: function (arg1, arg2) {
return math.divide(arg1, arg2);
},
//乘
numberRide: function (arg1, arg2) {
return math.multiply(arg1, arg2);
},
//加
numberAdd:function (arg1,arg2) {
return math.add(arg1, arg2);
}
//减
numberSub:function (arg1,arg2) {
return math.add(arg1, -arg2);
}
}
}