我正在尝试在两个给定值之间生成一个随机数。我可以使用标准的小功能来生成此代码,但是当我尝试通过输入字段设置最大值和最小值时,会得到一些意外的结果。
这是使用jQuery,对于此特定功能不是必需的,但对于较大的项目是必需的。
这是我所发现的例子:
https://jsfiddle.net/u2k41hzd/
function randomNumber(min, max) {
points = Math.floor(Math.random() * (max - min + 1) + min);
}
$( "button" ).on( "click", function ( event ) {
minPoints = $( ".min-points" ).val();
maxPoints = $( ".max-points" ).val();
randomNumber(minPoints, maxPoints);
$(".random").html(points);
});
在最小数量为1而最大数量为6的情况下,我希望得到的数字介于1和6之间。但是,我得到的数字介于0和5之间。
如果最小数为2,最大数为6,我希望得到的数字介于2和6之间,但是得到的数字介于0和4之间。传递3和6给出的数字介于0和3之间,依此类推。 / p>
忽略输入值并对其进行硬编码似乎可以产生预期的结果,而不会出现任何问题。本质上,我只是不确定为什么输入值会如此。我敢肯定我只是误解了某处或在某个地方犯了一个错误,但我无法确定原因!
答案 0 :(得分:0)
问题是您需要将min
添加到四舍五入的数字,而不是随机生成的数字:
function randomNumber(min, max) {
points = Math.floor(Math.random() * (max - min + 1)) + min;
}
为进一步解释,对于2和9: