生徒用に動的なワークシートを作成したいので、毎回異なる質問が表示されます。私が作成しようとしている質問、つまり、合計 Y のうち X を獲得した場合のパーセンテージを計算します。
一緒に動作する 3 つの関数を次に示します。最初の関数はいくつかの数値を生成し、2 番目の関数を呼び出し、次に 3 番目の関数を呼び出して小数点以下 2 桁を超えているかどうかを確認します。小数点以下2桁以内の答えを見つけて、最初に有効なSCORE番号を返し、それを出力します。
私は3つの出力のうちの1つを取得し続けます.SCOREがあるべき場所が未定義である、出力がまったくない、または実用的な質問です.
時々それがどのように機能するか理解できず、時々 undefined をスローし、他の時にはまったく何も与えません。
何か案は。
function scorePercent()
{
var output="";
var total = Math.floor((Math.random()*99)+1);
var score = Math.floor((Math.random()*(total-1))+1);
output = output + "<div>A score of " + chkScore(score,total) + " out of " + total + ".</div></br>";
document.getElementById("qOut").innerHTML=output;
}
function chkScore(n1,n2)
{
var answ = (n1/n2)*100;
if(dps(answ)>2)
{
var scoreNew = Math.floor((Math.random()*(n2-1))+1);
chkScore(scoreNew, n2);
}
else
{
return n1;
}
}
function dps(num)
{
var match = (''+num).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
if (!match) { return 0; }
return Math.max(
0,
// Number of digits right of decimal point.
(match[1] ? match[1].length : 0)
// Adjust for scientific notation.
- (match[2] ? +match[2] : 0));
}