Javascript中浮点数乘法溢出解决方案

时间:2025-01-20 07:09:44

Javascript中的浮点数的加减乘除是个很有意思的事情,基本都会出现溢出的情况。解决的思路基本都是:将浮点数变为整数,运算完再除以相应的倍数。

以下举例一个乘法的解决方案:
浮点数相乘有很多方式,下面是我给出的一个我自己认为不错的解决方案:

// An highlighted block
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 Number(f1) * Number(f2) / Math.pow(10, f1Len + f2Len);
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

其他运算类似