>> 300+192.92 << 492.91999999999996 >> (300*100+192.92*100)/100 << 492.92
作統計彙總時,頁面加和,展現出一堆的小數點。算法
網上查找了一下才知道好像是個精度BUG。一是說 JavaScript 浮點數計算的 Bug,另有說和計算機最終轉換成二進制計算有關係,可是不是全部小數都會有這種現象。spa
乾脆本身把它變成整數再求餘了。.net
網上自定義算法:code
//自定義加法運算 function addNum (num1, num2) { var sq1,sq2,m; try { sq1 = num1.toString().split(".")[1].length; } catch (e) { sq1 = 0; } try { sq2 = num2.toString().split(".")[1].length; } catch (e) { sq2 = 0; } m = Math.pow(10,Math.max(sq1, sq2)); return (num1 * m + num2 * m) / m; } alert(addNum(0.1, 0.2));
參見:htm
http://www.jb51.net/article/73043.htmblog