1. 金额统计:
/** * 获取购物车商品总金额 */ getTotalMoneyInCart: function () { var totalMoney = 0; var cart = getApp().globalData.cart; for (var idx in cart) { var itemMoney = (cart[idx].price * cart[idx].selectcount).toFixed(2); //var itemMoney = (cart[idx].price * cart[idx].selectcount); totalMoney += parseFloat(itemMoney); } totalMoney = totalMoney.toFixed(2); // 返回的金额一定要取2位精度 防止出现3.5600000000 出现。 console.log(totalMoney); return totalMoney; },
2. 后端Php代码 比较金额时用bccomp
if (bccomp($totalMoney,$cartAmount, 2) != 0) { $result['msg'] = '总金额不匹配:'; $result['code'] = 0; $this->ajaxReturn($result); }
3. 前端JS代码比较金额用
// 正确做法 if (parseFloat(getApp().globalData.userInfo.amount) >= parseFloat(totalMoney)) { // ... } // 错误 if (getApp().globalData.userInfo.amount > totalMoney) { // ... }