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
其他运算类似