-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、operator が * の場合、1.1766467065868262 を返します。

この問題の原因は何ですか?

何が悪いのかわからない。

この問題を解決する方法を知っている場合は、私を助けてください。

ありがとう!!

PS

Chrome 拡張機能を作成しているため、セキュリティ ポリシーにより eval 関数の使用が許可されていません。そのため、独自の myCal 関数を用意しています。

4

1 に答える 1