我想为我的学生创建一个动态工作表,所以每次他们这样做时都会看到不同的问题。我正在尝试创建的问题是,如果我在 Y 的总分中得分 X,则计算百分比。
这是三个一起工作的函数,第一个生成一些数字,调用第二个,然后调用第三个检查它是否超过 2 个小数位,如果是,第二个创建一个新的 SCORE 数字,重复直到它找到一个小数点后 2 位或更少的答案,然后返回适用于第一个的 SCORE 数字,然后输出它。
我不断得到三个输出之一:未定义 SCORE 应该在哪里,根本没有输出,或者一个工作问题。
我有时无法理解它是如何工作的,有时会抛出未定义的,而在其他时候则完全没有给出任何东西。
有任何想法吗。
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));
}