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

Math random with user inputting the min and max

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

她的百分比法

return Math.floor(Math.random() * (百分比(上) - 百分比(下))) + 百分比(下);

您的提示 returns 一个可能不是您想要的 int 的字符串。尝试将字符串更改为 int.

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());

您的上一条指令有误(return)

你应该这样做, return Math.floor((Math.random() * 上) + 下);

已验证!!

最后我在提示符中使用了 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>");