-4

我写了一个随机生成计算公式的javascript代码。

代码随机生成类似的东西。

134 + 333 = 467

10 * 3 = 30

9 / 3 = 3

130 - 20 = 110

为了生成类似的东西,我有这个代码,如下所示。

var myCal = [
    function(a, b){return a + b;}, 
    function(a, b){return a - b;}, 
    function(a, b){return a / b;}, 
    function(a, b){return a * b;}
];

var tempX = parseInt(Math.random()*1000),
    tempY = parseInt(Math.random()*1000),
    tempNum = parseInt(Math.random()*4),
    result;

result = myCal[tempNum](tempX, tempY);

但是,问题是当它生成包含“*”或“/”的计算公式时,它会返回错误的答案。

例如,当 tempX 为 393,tempY 为 334,运算符为 * 时,它返回 1.1766467065868262。

是什么导致了这个问题?

我不知道它有什么问题。

如果您知道如何解决此问题,请帮助我。

谢谢!!

附言

由于我正在构建 Chrome 扩展程序,因此他们的安全策略不允许我使用 eval 功能。这就是为什么我有自己的 myCal 函数。

4

1 回答 1

10

例如,当tempX393tempY334且 operator 为*时,它返回1.1766467065868262

393 * 334; // 131262
393 / 334; // 1.1766467065868262

看起来你混淆了你的运营商。

于 2013-09-08T12:13:50.107 回答