数学随机,用户输入最小值和最大值

时间:2015-03-05 09:29:09

标签: javascript math

我希望用户输入他们自己的上下数字,因此数学随机可以选择它们之间的随机数。出于某种原因,选择的数字超过了上限,有人可以提供建议吗? 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>");

5 个答案:

答案 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);

已验证!!