我写了一个随机生成计算公式的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。
是什么导致了这个问题?
我不知道它有什么问题。
如果你知道如何解决这个问题,请帮帮我。
谢谢!
P.S
由于我正在构建Chrome扩展程序,因此我不允许通过其安全策略使用eval功能。这就是为什么我有自己的myCal功能。
答案 0 :(得分:10)
例如,当 tempX 为
393
且 tempY 为334
且运算符为*
时,它返回{{1 }}
1.1766467065868262
看起来你混淆了你的运营商。