計算式をランダムに生成する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 関数を用意しています。