javascript小數乘法運算導致的精度問題

admin發表於2017-03-24

浮點數進行乘法運算在js中存在著精度問題,這與什麼原因引起的這裡就不介紹了,其實就是計算機本身的問題導致的,雖然c#或者java等語言也存在這樣的問題,但是它們進行了封裝處理,就不用我們擔心了,下面我們介紹一下javascript如何消除此問題。

程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
function FxF(f1,f2){
  f1 += '';
  f2 += '';
  var f1Len=f1.split('.')[1].length,
       f2Len = f2.split('.')[1].length;
  if(f1Len){
    f1 = f1.replace('.', '');
  }
  if(f2Len){
    f2 = f2.replace('.', '');
  }
  return f1 * f2 / Math.pow(10,f1Len+f2Len);
};
console.log(FxF(3.1415,2.164));

以上程式碼實現了精度運算的要求,當然不止乘法運算具有此問題,其他的運算也具有此問題,這裡就不多介紹了,具體可以參閱js解決浮點數算數運算精度問題一章節。


相關文章