【发布时间】:2019-03-26 11:47:02
【问题描述】:
我正在编写一个基本的随机数生成器(通过 freeCodeCamp 进行自学,打算用它和我的两个小男孩玩游戏)。我使用的是基本 HTML,没有添加 CSS 作为 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>
我希望能够捕获用户输入的最小值和最大值,并从该范围内生成一个随机整数。相反,当我输入 min 1、max 4 或 21 时,我会得到类似 01 的值。当输入 min 3、max 10 时,我会得到 63。
【问题讨论】:
-
将解析分配给变量本身:
minimun = parseInt(minimun)。对maximum做同样的事情 -
我不知道为什么以前没有为我点击 - 完美。感谢您帮助新手!
标签: javascript html