在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 購物車計算總價,為什么有時候會出現(xiàn)小數(shù)?

購物車計算總價,為什么有時候會出現(xiàn)小數(shù)?

我在 vue 的 computed 中計算購物車總價,代碼如下:

computed:{

  AllPrice: function () {
   let totalPrice = 0;
   for (let k in this.tickets) {
     totalPrice += Number(this.tickets[k].price) * Number(this.tickets[k].number)
   }
     console.log(totalPrice);
   return totalPrice;
  }
}
但是打印出來的結(jié)果卻是這樣的:

clipboard.png

當(dāng)出現(xiàn)這個小數(shù)點后很長一段的數(shù)字時應(yīng)付金額就不顯示了,實際計算結(jié)果也不是這個 ,不知道為啥, 新手求指點一下,十分感謝!

回答
編輯回答
女流氓

圖片描述

2018年2月6日 20:52
編輯回答
獨白

使用浮點數(shù)自動轉(zhuǎn)換的吧

2017年8月12日 00:59
編輯回答
毀與悔

原因:IEEE754標(biāo)準(zhǔn)
而且簡單的乘除也會有問題

0.56*100  // 56.00000000000001

解決:同樣建議bignumber.js

2017年11月24日 18:55
編輯回答
尐飯團(tuán)

在js中 0.1 + 0.2 != 0.3,
你可以把單價剩以100轉(zhuǎn)換成整數(shù),然后再計算總價后除以100就可以了

2017年8月5日 05:10
編輯回答
替身

浮點數(shù)的的四則運算都會有的精度誤差問題

2017年2月1日 04:07
編輯回答
傻叼

浮點數(shù)的問題吧

2017年5月7日 08:15
編輯回答
款爺

看價格精確到小數(shù)點后n位就乘以10^n去掉小數(shù)點,運算完再除以10^n就可以了
應(yīng)付金額不顯示應(yīng)該是數(shù)字太長了顯示到下方了吧

2017年11月14日 05:40
編輯回答
萢萢糖

雖然題主已經(jīng)采納了答案了,但是我還是要根據(jù)我以往的經(jīng)驗來分享一下
建議使用bignumber這個庫。
題主的具體業(yè)務(wù)可以決定使用 * 10 ^n / 10 ^n的方式,但我就舉一個例子,
將320.21小時轉(zhuǎn)換成x天x小時形式,我們希望得到的結(jié)果是13天8.21小時

var input = 320.21;
var day = Math.floor(input / 24); // day == 13
var hour = (input - 24 * day) * 100 / 100; //bad
var hour2 = (input * 100 - 24 * day * 100) / 100; // bad
//結(jié)果會是類似這個結(jié)果:8.209999999999964

那么如果使用bignumber

var input = 320.21;
var bg = new BigNumber(input);
var day = Math.floor(input / 24); 
var hour = bg.minus(day * 24);
console.log(day + 'D' + hour + 'H');

jsfiddle

2017年7月24日 04:12
編輯回答
紓惘
var a = 0.1;
var b = 0.2;
console.log(a + b); //0.30000000000000004
console.log((a * 10 + b * 10) / 10); //0.3
2017年1月7日 02:00