下面是一个函数,它应该在用户指定的两个数字之间产生一个随机数。如果我手动指定数字,则该等式有效。但是,如果我使用提示功能,它似乎产生一个完全随机的数字。
function randOm() {
var high = prompt("high");
var low = prompt("low");
return Math.floor(Math.random() * (high - low + 1)) + low;
}
document.write(randOm());
答案 0 :(得分:0)
您需要使用parseFloat
将其转换为Number
。
答案 1 :(得分:0)
以数字转换提示的结果,因为它返回字符串:
return Math.floor(Math.random() * ((+high) - (+low) + 1)) + (+low);
答案 2 :(得分:0)
prompt
已知会返回string
,因此在执行您的操作之前,您必须convert
string to integer
。另一个缺点是,如果用户输入任何字符如提示框中的“hello”或“hi”,您的函数可能会返回NaN
,因为无法将字符解析为数字。
脚本:
function randOm() {
var high = prompt("high");
var low = prompt("low");
var h=parseInt(high);
var l=parseInt(low);
return Math.floor(Math.random() * (h - l + 1)) + l;
}
document.write(randOm());
答案 3 :(得分:0)
if (Number.isNaN(high) || Number.isNaN(low)){
alert ("both entries must be numbers!");
}
else{
low = parseFloat(low);
high = parseFloat(high);
return Math.floor(Math.random() * (high - low + 1)) + low;
}