我正在编写一个基本的随机数生成器(通过freeCodeCamp进行自我教学,将其用于与我的2个小男孩一起玩游戏)。我使用的是没有添加CSS的基本HTML作为该功能的DOM和Javascript客户端(我的长辈是5,我们有一个他喜欢向人们展示的家族博客)。
问题是下面的代码在一定程度上正常工作-Math随机函数很好,它在Math.floor上正常工作,并且乘法*(最大-最小+1)都按预期工作。
问题是最后一个段不起作用:+最小值。从结果看,我认为公式会生成一个结果,直到并包括乘以括号的结果,但最后将最小值串联起来,而不是将其加到结果中。
当我第一次发现问题时,我已经通过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>
我希望能够捕获用户输入的最小值和最大值,并从该范围产生一个随机整数。相反,当我输入最小1,最大4或21时得到的值是01,或者当输入最小3,最大10时得到63的值。
答案 0 :(得分: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);
}