它没有给出给定范围内的值r?为什么呢?
function getRandomIntInclusive(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var x = window.prompt("minimo");
var y = window.prompt("maximo");
var r = getRandomIntInclusive(x,y);
console.log(r);
编辑:此功能取自a link of dev mozilla 谢谢
答案 0 :(得分:1)
window.prompt
正在返回一个字符串,所以当你添加min(+ min
)时,你会得到字符串连接而不是添加。一个简单的解决方案是将window.prompt
的结果转换为数字:
function getRandomIntInclusive(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var x = parseInt( prompt("minimo"), 10 );
var y = parseInt( prompt("maximo"), 10 );
var r = getRandomIntInclusive(x,y);
console.log(r);
答案 1 :(得分:1)
prompt
返回一个字符串,您需要将这些字符串解析为整数:
function getRandomIntInclusive(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var x = parseInt(window.prompt("minimo"), 10);
var y = parseInt(window.prompt("maximo"), 10);
var r = getRandomIntInclusive(x, y);
console.log(r);
答案 2 :(得分:0)
使用parseInit()
将字符串转换为整数
function getRandomIntInclusive(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var x = window.prompt("minimo");
var y = window.prompt("maximo");
var r = getRandomIntInclusive(parseInt(x),parseInt(y));
alert(r);
答案 3 :(得分:0)
问题是javascript没有将值视为数字,而是将它们视为字符串。
以下代码应该让您开始解决此问题,但请注意,如果传入错误值,它可能会出错:
function getRandomIntInclusive(min, max) {
min = parseFloat(min);
max = parseFloat(max);
return Math.floor(Math.random() * ((max - min) + 1)) + min;
}
答案 4 :(得分:-1)
尝试:min + Math.floor(Math.random()* max)