問題描述電商項目,前端框架使用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這種類似的數據.控制臺打印結果與顯示結果:雖然目前我所使用的解決辦法不影響顯示,但這個問題的出現讓我很費解,想知道為什么會出現這種情況,可以通過什么方式避免這種錯誤的發生.
Vue 計算屬性計算結果出現規律性異常
守候你守候我
2019-03-21 18:19:57