相关疑难解决方法(0)

如何处理JavaScript中的浮点数精度?

我有以下虚拟测试脚本:

function test() {
  var x = 0.1 * 0.2;
  document.write(x);
}
test();
Run Code Online (Sandbox Code Playgroud)

这将打印结果0.020000000000000004,只应打印0.02(如果您使用计算器).据我所知,这是由于浮点乘法精度的误差.

有没有人有一个很好的解决方案,以便在这种情况下,我得到正确的结果0.02?我知道有类似的功能toFixed或舍入将是另一种可能性,但我想真正打印整个数字没有任何切割和舍入.只是想知道你们其中一个人是否有一些漂亮,优雅的解决方案.

当然,否则我会转到大约10位左右.

javascript floating-point

552
推荐指数
22
解决办法
34万
查看次数

在javascript中计算字符串值,而不是使用eval

有没有办法计算存储在JavaScript中的字符串中的公式而不使用eval

通常我会做类似的事情

var apa = "12/5*9+9.4*2";
alert(eval(apa));
Run Code Online (Sandbox Code Playgroud)

那么,有没有人知道替代品eval

javascript eval

41
推荐指数
6
解决办法
5万
查看次数

在 Javascript 中计算方程,不使用 eval()

我在网页 (150+) 中有一堆字段,需要在它们上运行方程式才能产生结果。

我目前存储这样的方程:

<input name="F7" type="text" class="numeric" data-formula="([C7]-[D7])/[E7]" readonly />
Run Code Online (Sandbox Code Playgroud)

当输入模糊时,我使用 jQuery 选择器遍历所有具有data-formula属性的输入,采用公式,并使用正则表达式替换指针([C7]等式中的 )替换为其适当的值。

之后,我eval()将方程得到一个结果,并将其放入正确的输入中。这很好用,但速度慢,导致网页挂起几秒钟,如果每次输入模糊时都会发生这种情况,这很糟糕。

有没有一种方法可以在不使用的情况下评估一个方程,例如“(1-2)/4” eval()?这些方程也可能有函数,例如平方根(这eval()很好,因为我可以直接Math.sqrt()输入公式),并且数字可能是小数。

注意:这个应用程序必须在 IE7 和 8 上运行,所以我不相信我可以使用 Webworkers 或类似的东西。我还考虑过仅在点击“保存”按钮后运行此代码,但如果可能,我更希望用户界面实时更新

javascript eval

6
推荐指数
1
解决办法
5955
查看次数

标签 统计

javascript ×3

eval ×2

floating-point ×1