gpt4 book ai didi

javascript - math.random 有时会自动将最小数字设置为零

转载 作者:行者123 更新时间:2023-12-03 02:40:57 26 4
gpt4 key购买 nike

作为一个小爱好,我正在使用 javascript 创建一个随机数生成器工具 math.random脚本和一个 html 表单,询问最小数量和最大数量。但我遇到一个问题,有时最小数量设置为零而不是用户输入的内容。这是我的 html 代码:

<form id="form" onsubmit="return false;">
<input type="text" id="minNumber" value="Minimum number" onfocus="if (this.value == 'Minimum number') {this.value = '';}" onblur="if ( this.value == '') " />
<input type="text" id="maxNumber" value="Maximum number" onfocus="if (this.value == 'Maximum number') {this.value = '';}" onblur="yes" />
<input type="submit" onclick="getNumber()" value="Get random number">
</form>

这是我的 JavaScript 代码:

function getNumber() {
var minNumber = document.getElementById("minNumber").value;
var maxNumber = document.getElementById("maxNumber").value;
var randomnumber = Math.floor(Math.random() *( + maxNumber) + minNumber);
alert("Your random number is: " + randomnumber);
}

我尝试了多种修复方法,包括:

  • 删除一些不必要的空格、+ 和 1
  • 添加更多变量

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

此示例返回指定值之间的随机整数。该值不小于 min(如果 min 不是整数,则为大于 min 的下一个整数),并且小于(但不等于)max。

function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min; //The maximum is exclusive and the minimum is inclusive
}

使用舍入来实现这一点可能很诱人,但这样做会导致随机数遵循不均匀分布,这可能无法满足您的需求。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random#Getting_a_random_integer_between_two_values_inclusive

您应该将所有“内联事件”替换为 addEventListener https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

function getNumber() {
var minNumber = Number(document.getElementById("minNumber").value);
var maxNumber = Number(document.getElementById("maxNumber").value);
var randomnumber = Math.floor((Math.random() * (maxNumber - minNumber)) + minNumber);
document.getElementById("output").innerText = "Your random number is: " + randomnumber;
}
<form id="form" onsubmit="return false;">
<input type="text" id="minNumber" value="2" onblur="getNumber()" />
<input type="text" id="maxNumber" value="10" onblur="getNumber()" />
<input type="submit" onclick="getNumber()" value="Get random number">
</form>
<span id="output"></span>

关于javascript - math.random 有时会自动将最小数字设置为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48328986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com