最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
解决Javascript浮点数相乘精度问题
时间:2014-06-03 编辑:简简单单 来源:一聚教程网
例子1
基本的思想就是把浮点数全部变成整数,然后除以等值的10的N阶次方。N为(两个浮点数的后面长度之和)。
代码如下 | 复制代码 |
function FxF(f1, f2) { if (f1Len) { |
例子2
代码如下 | 复制代码 |
//乘法函数,用来得到精确的乘法结果 |
附加法精度问题
/说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
代码如下
复制代码
//调用:accAdd(arg1,arg2)
//返回值:arg1加上arg2的精确结果
function accAdd(arg1, arg2) {
var r1, r2, m;
try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
m = Math.pow(10, Math.max(r1, r2))
return (arg1 * m + arg2 * m) / m
}
//给Number类型增加一个add方法,调用起来更加方便。
Number.prototype.add = function(arg) {
return accAdd(arg, this);
}
-
上一个: js点击页面中任意位置弹出新页面
相关文章
- JavaScript 浮点数及运算精度调整总结 11-09
- JavaScript浮点数的运算详细介绍 01-15
- HTML简单购物数量小程序代码展示 10-31
- html canvas实现弹幕功能 10-31
- HTML中空格表示的意义 10-31
- html area标签解读 10-31