# 小数相加

# 题目

为何 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);
    }
  }
}