0
我有一個奇怪的問題,當在ng-bind中使用數學表達式時,結果是意外的。根據我的實驗,問題只發生在被加數的第一部分是15以上,第二部分只有1.112時。AngularJS數學運算
納克綁定= 「總和= 16 + 1.112」 NG-模型= 「總和」 值= 「16.112000000000002」
我有一個奇怪的問題,當在ng-bind中使用數學表達式時,結果是意外的。根據我的實驗,問題只發生在被加數的第一部分是15以上,第二部分只有1.112時。AngularJS數學運算
納克綁定= 「總和= 16 + 1.112」 NG-模型= 「總和」 值= 「16.112000000000002」
這是一個標準的浮點舍入問題。浮點數用基數2表示,所以大多數有限小數沒有精確表示(二進制)浮點數。 JavaScript使用IEEE754雙精度數與精度53位,最接近編號以1.112然後
1.1120000000000000994759830064140260219573974609375
加入15到需要多於53位表示有效,所以它必須是圓形的,其結果是
16.11200000000000187583282240666449069976806640625
和比最接近IEEE754雙精度數到16.112,這是
16.111999999999998323119143606163561344146728515625
並且因此第一非零數字的16.112後大顯示區分它與最接近的數字16.112
任何解決方案來獲得所需的格式? – wajatimur
取決於你想要的東西。可能'toFixed()'會做,'sum.toFixed(3)'左右。 –