【发布时间】:2015-04-20 02:45:44
【问题描述】:
我对 Javascript 简介的任务是:“编写一个接受两个数字并返回两个值之间的随机数的函数。”在我尝试提示输入变量之前,这似乎很容易,此时输出似乎不正确。
这是最推荐用于在两个整数之间查找随机数的代码,在本例中为 1 和 6:
function getRandomizer(bottom, top) {
return function() {
return Math.floor( Math.random() * ( 1 + top - bottom ) ) + bottom;
}
}
var rolldie = getRandomizer(1, 6);
document.write(rolldie());
我得到的输出是它应该是的,一个介于 1 和 6 之间的随机整数。但是我的任务是提示输入数字,可以是任何数字。所以我这样做了,使用 10 和 1 作为示例数字:
var max = prompt("input 10");
var min = prompt("input 1");
function getRandomizer(bottom, top) {
return function() {
return Math.floor( Math.random() * ( 1 + top - bottom ) ) + bottom;
}
}
var rolldie = getRandomizer(min, max);
document.write(rolldie());
输出:961。第二次尝试:231。等等。如果我将变量 max 和 min 直接设置为 10 和 1,则代码可以完美运行,返回 1 到 10 之间的数字。但是由于某种原因,提示输入,然后输入完全相同的数字会给出完全不同的输出。为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
1 + top是添加数字和字符串的位置,因此+运算符将连接这些值,与+ bottom相同。将值转换为数字,例如1 + Number(top)等 -
var max = Number(prompt("input 10")); var min = Number(prompt("input 1"));
标签: javascript