为了账号安全,请及时绑定邮箱和手机立即绑定

Vue 计算属性计算结果出现规律性异常

Vue 计算属性计算结果出现规律性异常

守候你守候我 2019-03-21 18:19:57
问题描述电商项目,前端框架使用vue,显示购物车内价格时使用vue的计算属性,用来计算购物车的总价格.但当商品价格为1.01元时,计算结果会出现周期性的位数异常.相关代码goodsInform 存储用户存在购物车中商品的信息price 商品单价amount 购物车中同种商品的数量totalPrices () {      let totalPrices = 0      for (let index in this.goodsInform) {        console.log(this.goodsInform[index].price) // 商品的单价        console.log(this.goodsInform[index].amount) // 商品的数量        totalPrices += this.goodsInform[index].price * this.goodsInform[index].amount        // 强制限制保留位数为两位,这是我对该问题的解决办法,但想知道问题原因      }      totalPrices = totalPrices.toFixed(2)      if (totalPrices <= 0) {        return '未选购商品'      } else {        return '总价:' + '¥' + totalPrices      }    }相关错误结果截图和数据信息1.商品数据是Java后台传递的,后端说他使用BigDecima类型数据,传过来我这边存储的均是Number类型的单价和数量.2.出现错误的规律:分别在1.01元的商品数量为3,6,12,24...(后面没继续测试但好像规律已经出现了)会显示成6.0600000000000005这种类似的数据.控制台打印结果与显示结果:虽然目前我所使用的解决办法不影响显示,但这个问题的出现让我很费解,想知道为什么会出现这种情况,可以通过什么方式避免这种错误的发生.
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

这是js的一个老bug,在小数位的计算上。小数计算精准度丢失


查看完整回答
反对 回复 2019-04-14
  • 1 回答
  • 0 关注
  • 301 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号