<head>
<script>
function getRandomArbitrary(min, max) {
var r = Math.floor(Math.random() * (max - min + 1) + min);
document.getElementById('demo').innerHTML = r;
}
</script>
</head>
<body>
<h1>randomize</h1>
a: <input type="text" id='low'><br>
b: <input type="text" id='high'><br>
<button onclick="getRandomArbitrary(document.getElementById('low').value,document.getElementById('high').value)">Get</button>
<div id='demo'></demo>
</body>
我有上面的代码,通过它我试图在文本a和b中给出的范围之间生成随机数。当我手动将值传递给此函数(比如10,15)时,它正常工作(给出,比方说13)。但是当我按下按钮并要求它从文本中获取值并计算该范围内的随机数时,它无法这样做并计算超出范围的数字(有时)。
我花了很多时间在上面,看不出有什么问题。请帮我。
答案 0 :(得分:4)
getRandomArbitrary(parseInt(document.getElementById('low').value),parseInt(document.getElementById('high').value));
另外,我请修改getRandom函数,如下所示。没有必要把这笔钱合并好吗?
function getRandomArbitrary(min, max) {
var r = Math.floor(Math.random() * (max - min + 1) )+ min;
document.getElementById('demo').innerHTML = r;
}
答案 1 :(得分:3)
将值转换为
Number
,然后传递给函数
Unary plus (+)
, unary plus operator
位于其操作数之前,并计算其操作数,但尝试将其转换为number
,如果它还没有。
function getRandomArbitrary(min, max) {
var r = Math.floor(Math.random() * (max - min + 1) + min);
document.getElementById('demo').innerHTML = r;
}
&#13;
<h1>randomize</h1>
a:
<input type="text" id='low'>
<br>b:
<input type="text" id='high'>
<br>
<button onclick="getRandomArbitrary(+document.getElementById('low').value,+document.getElementById('high').value)">Get</button>
<div id='demo'></div>
&#13;
答案 2 :(得分:1)
Math.floor(Math.random() * max) + min
答案 3 :(得分:0)
var min = (your minimum number value);
var max = (your maximum number value);
var myRandom = Math.floor(Math.random() * max) + min;
要获取随机数作为两个数之间的整数,可以使用该函数; 多亏了这个函数,你将生成一个介于 min 和 max 之间的整数