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

Math random with user inputting the min and max

本文关键字:最小值 最大值 输入 用户 随机      更新时间:2023-09-26

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

使用parseInt方法

return Math.floor(Math.random()*(parseInt(上)-parseInt(下)))+parseInt(下);

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

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

您在上一条指令(返回)中出现错误

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

已验证!!