我希望用户输入他们自己的上下数字,因此数学随机可以选择它们之间的随机数。出于某种原因,选择的数字超过了上限,有人可以提供建议吗? http://jsfiddle.net/artworkjpm/w54e9bsw/
function getRandomNumber( upper, lower) {
var lower = prompt("give me your lower number");
var upper = prompt("give me your higher number");
if (isNaN(lower) || isNaN(upper) ) {
throw new Error("you need to select a number");
};
return Math.floor(Math.random() * (upper - lower)) + lower;
}
document.write("<h2>" + getRandomNumber() + "</h2>");
答案 0 :(得分:4)
function getRandomNumber() {
var lower = parseInt(prompt("give me your lower number"));
var upper = parseInt(prompt("give me your higher number"));
if (isNaN(lower) || isNaN(upper) ) {
throw new Error("you need to select a number");
};
var preNumber = Math.random() * (upper - lower);
if(Math.random() < 0.5){
return Math.ceil(preNumber) + lower;
} else {
return Math.floor(preNumber) + lower;
}
}
console.log(getRandomNumber());
答案 1 :(得分:2)
使用parseInt方法
返回Math.floor(Math.random()*(parseInt(upper) - parseInt(lower)))+ parseInt(lower);
答案 2 :(得分:0)
您的提示返回一个字符串,该字符串可能不是您想要的int。尝试将字符串更改为int。
答案 3 :(得分:0)
最后我在提示符中使用了parseInt,它起作用了:
function getRandomNumber( upper, lower) {
var lower = parseInt(prompt("give me your lower number"));
var upper = parseInt(prompt("give me your higher number"));
if (isNaN(lower) || isNaN(upper) ) {
throw new Error("you need to select a number");
};
return Math.floor(Math.random() * (upper - lower)) + lower;
}
document.write("<h2>" + getRandomNumber() + "</h2>");
答案 4 :(得分:-2)
你上一条指令中有错误(返回)
你应该这样做, 返回Math.floor((Math.random()* upper)+ lower);
已验证!!