为什么Javascript代码中的随机数连接而不是添加?

问题描述 投票:0回答:1

我正在写一个基本的随机数生成器(自我教学freeCodeCamp,将它用于与我的两个小男孩的游戏)。我正在使用没有添加CSS的基本HTML作为功能的DOM和Javascript客户端(客户端作为我的老大是5,我们有一个他喜欢向人们展示的家庭博客)。

问题是下面的代码是有效的 - 数学随机函数很好,它可以很好地与Math.floor一起工作,并且乘法*(最大 - 最小+1)都可以按预期工作。

问题是最后一段不起作用:+最小值。从结果我看到的公式是生成一个结果,包括bralc的multiplcation,但然后在最后连接最小值,而不是将其添加到结果。

当我第一次发现问题时,我已经通过parseInt将最大值和最小值转换为整数,以防出现问题(我不明白为什么因为它们在乘法括号中都能正常工作),但当然没有区别。

 function randomNumberFunction(maximum, minimum) {
  var numRan;
  var maximum = document.getElementById("maximum").value;
  var minimum = document.getElementById("minimum").value;
  parseInt(maximum);
  parseInt(minimum);
    
  numRan = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum;
  alert(numRan);
}
<div id="dice">
  <form name="randomDice">
    <h1>Get a random number</h1>
    <p>Maximum</p>
    <input id="maximum" type="number" name="random"><br>
    <p>Minimum</p>
    <input id="minimum" type="number" name="random"><br>
    <br>
    <button onclick="randomNumberFunction()">Get a random number</button>
  </form>

</div>

我希望能够捕获用户输入的最小值和最大值,并从该范围生成随机整数。相反,当输入min 3,max 4或21.或63输入min 3,max 10时,我得到的值为01。

javascript html
1个回答
1
投票

在转换最小和最大变量时,不会赋值

试试这个:

function randomNumberFunction(maximum, minimum) {
  var numRan;
  var maximum = document.getElementById("maximum").value;
  var minimum = document.getElementById("minimum").value;
  maximum = parseInt(maximum);
  minimum = parseInt(minimum);

  numRan = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum;
  alert(numRan);
}
© www.soinside.com 2019 - 2024. All rights reserved.