Javascript 随机数js最小最大值

Javascript 随机数js最小最大值,javascript,html,random,Javascript,Html,Random,我试图从JavaScript的输入中获取两个数字之间的随机数。当我用数字代替max.value和min.value时,它起作用,但变量不起作用。我不明白random在js中是如何工作的,在其他编程语言中我知道它很容易做到,比如random(min,max),所以我完全不明白为什么在js中这么难。多谢各位 函数genRanNumb(){ document.getElementById('demo').innerHTML=Math.floor(Math.random()*(max.value-mi

我试图从JavaScript的输入中获取两个数字之间的随机数。当我用数字代替max.value和min.value时,它起作用,但变量不起作用。我不明白random在js中是如何工作的,在其他编程语言中我知道它很容易做到,比如random(min,max),所以我完全不明白为什么在js中这么难。多谢各位

函数genRanNumb(){
document.getElementById('demo').innerHTML=Math.floor(Math.random()*(max.value-min.value+1)+min.value);
}

按钮

我认为问题在于您的输入是文本,而您的随机输入需要int值 解决方案是使用javascript中的
parseFloat(yourvariable)
来管理变量。
就您而言,您有:

function genRanNumb() {
  document.getElementById('demo').innerHTML=Math.floor(Math.random()*(parseFloat(max.value)-parseFloat(min.value)+1)+parseFloat(min.value));
}
希望它能回答你的问题

为了更好的可读性和兼容性,您应该这样编写:

function genRanNumb() {
  var max = parseFloat(document.getElementById("max").value,10),
      min = parseFloat(document.getElementById("min").value,10);

  document.getElementById('demo').innerHTML=Math.floor(Math.random()*(max-min+1)+min);
}

我认为问题在于你的输入是文本,你的随机需要int值 解决方案是使用javascript中的
parseFloat(yourvariable)
来管理变量。
就您而言,您有:

function genRanNumb() {
  document.getElementById('demo').innerHTML=Math.floor(Math.random()*(parseFloat(max.value)-parseFloat(min.value)+1)+parseFloat(min.value));
}
希望它能回答你的问题

为了更好的可读性和兼容性,您应该这样编写:

function genRanNumb() {
  var max = parseFloat(document.getElementById("max").value,10),
      min = parseFloat(document.getElementById("min").value,10);

  document.getElementById('demo').innerHTML=Math.floor(Math.random()*(max-min+1)+min);
}

你的随机数逻辑是正确的。您只需要从文本框(即字符串)中检索值,然后将它们解析为整数

函数genRanNumb(){
var min=parseInt(document.getElementById('min')。值,10);
var max=parseInt(document.getElementById('max')。值,10);
document.getElementById('demo').innerHTML=Math.floor(Math.random()*(max-min+1)+min);
}

按钮

您的随机数逻辑是正确的。您只需要从文本框(即字符串)中检索值,然后将它们解析为整数

函数genRanNumb(){
var min=parseInt(document.getElementById('min')。值,10);
var max=parseInt(document.getElementById('max')。值,10);
document.getElementById('demo').innerHTML=Math.floor(Math.random()*(max-min+1)+min);
}

按钮

问题在于您的值是字符串,因此当您执行以下操作时:

(max.value-min.value+1)+(min.value)
例如,它喜欢做
6”+“5”
so
“65”

所以试试看:

 <script>
   function genRanNumb() {
     document.getElementById('demo').innerHTML=Math.floor(Math.random()*(parseInt(max.value-min.value+1))+parseInt(min.value));
   }

</script>

函数genRanNumb(){
document.getElementById('demo').innerHTML=Math.floor(Math.random()*(parseInt(max.value-min.value+1))+parseInt(min.value));
}

问题在于您的值是字符串,因此当您执行以下操作时:

(max.value-min.value+1)+(min.value)
例如,它喜欢做
6”+“5”
so
“65”

所以试试看:

 <script>
   function genRanNumb() {
     document.getElementById('demo').innerHTML=Math.floor(Math.random()*(parseInt(max.value-min.value+1))+parseInt(min.value));
   }

</script>

函数genRanNumb(){
document.getElementById('demo').innerHTML=Math.floor(Math.random()*(parseInt(max.value-min.value+1))+parseInt(min.value));
}

问题在于输入元素的
值始终是字符串。在编写
max.value-min.value
时,由于减法运算符,JavaScript将值强制为数字。但是,当您编写
0.3+“8”
时,结果是
“0.38”
而不是
“8.3”
。这就是为什么原始代码会给出奇怪的值,
max.value
不会被添加,而是被追加。 下面是一种修复方法:首先使用单值
+
运算符(或使用parseInt)将字符串强制为数字:

函数genRanNumb(){
var vMin=+最小值;
var vMax=+最大值;
生成的var=Math.floor(Math.random()*(vMax-vMin+1)+vMin);
demo.innerText=已生成;
}

按钮

问题是输入元素的
值始终是字符串。在编写
max.value-min.value
时,由于减法运算符,JavaScript将值强制为数字。但是,当您编写
0.3+“8”
时,结果是
“0.38”
而不是
“8.3”
。这就是为什么原始代码会给出奇怪的值,
max.value
不会被添加,而是被追加。 下面是一种修复方法:首先使用单值
+
运算符(或使用parseInt)将字符串强制为数字:

函数genRanNumb(){
var vMin=+最小值;
var vMax=+最大值;
生成的var=Math.floor(Math.random()*(vMax-vMin+1)+vMin);
demo.innerText=已生成;
}

按钮

获取从最小值到最大值的随机数的备选方案

let makeGuess = function(guess){
    let min = 1;
    let max = 5;   
    let randomNumber = Math.floor(Math.random() * (max - min + 1)) + min

    return guess === randomNumber;

}
console.log(makeGuess(1));

获取从最小值到最大值的随机数的备选方案

let makeGuess = function(guess){
    let min = 1;
    let max = 5;   
    let randomNumber = Math.floor(Math.random() * (max - min + 1)) + min

    return guess === randomNumber;

}
console.log(makeGuess(1));


签出此。。2秒后谷歌!调试您的代码,您就会很容易地看到它为什么不工作。@pleinx为什么给定的链接会有帮助?OP已经有了公认答案中给出的公式。问题是这些值尚未从字符串转换为数字。请签出此。。2秒后谷歌!调试您的代码,您就会很容易地看到它为什么不工作。@pleinx为什么给定的链接会有帮助?OP已经有了公认答案中给出的公式。问题是这些值没有从字符串转换成数字。我刚刚检查过,parseInt()也存在@Christoph为什么你编辑了我的帖子,我不同意或拒绝?因为我很酷-另外,你是第一个得到正确答案的人,所以我只是编辑了你的答案,而不是写了另一个95%相同内容的答案。我当然可以,但为什么我没有选择批准或拒绝编辑?因为我有权编辑内容,而无需作者的批准。我刚刚检查过,parseInt()也存在@Christoph为什么你编辑我的帖子,我不同意或拒绝?因为我很酷-另外,你是第一个得到正确答案的人,所以我只是编辑了你的答案,而不是写了另一个95%相同内容的答案。我当然可以,但为什么我没有选择批准或拒绝编辑?因为我有权编辑内容,而无需作者的批准+感谢你对强迫的良好解释。对于剩下的答案,我会回答