如何在JavaScript中获取一位随机数?

13

1
在特定范围内生成Javascript随机数?在Javascript中两个数字之间的随机数,Javascript中-10和10之间的随机数。 - mellamokb
“0”(零)应该包含还是不包含?JohannesB的回答涵盖了两种可能性。 - Peter Mortensen
5个回答

27

Math.random() 返回介于 01 之间的浮点数,所以只需将其乘以 10 并转换为整数:

Math.floor(Math.random() * 10)

或者更简短一点:

~~(Math.random() * 10)

5
好的,我会尽力为您翻译。内容如下:nice, didn't knew about the ~~ operator - Moritz Roessler

7

免责声明

JavaScript的math.rand()不是加密安全的,因此不应用于密码、PIN码和/或赌博相关的随机数生成。如果您需要这种用途,请使用Web加密API!(W3C)。


如果不包括数字0(1-9):

function randInt() {
    return Math.floor((Math.random()*9) + 1);
}

如果包含数字0(0-9):
function randIntWithZero() {
     return Math.floor((Math.random()*10));
}

4
var randomnumber=Math.floor(Math.random()*10)

这里的数字10表示生成的随机数将在0-9之间。


2
10不是一个数字吧? - JJJ
哈哈,没有,但是假设OP不想要小数部分,他们可以解决它!已编辑。 - Paul Collingwood
1
对于任何想知道的人,Math.random()函数返回一个浮点数,范围在0-1之间(包括0但不包括1),因此这不会返回10。 - Adam Reis

1
Math.floor((Math.random()*10));

现在你得到了一个0到10之间的随机整数!


请提供需要翻译的英语文本。 - Peter Mortensen
“0到10之间”有些含糊不清。0是否包括在内?由于10被排除在外,这似乎也暗示着0也被排除在外。 - Peter Mortensen

1

请使用此功能:

Math.floor((Math.random()*9)+1);

3
加上 +1 可以去掉输出中的 0 并增加可能的输出数值上限 $10$。 - Blender
2
问题中提到了“数字”,因此我认为它指的是 0-9 - Blender
@Blender 嗯,你说得对,10不是一个数字。我已经进行了更正,但是OP的示例中没有包含0,所以我认为这是可以的。 - Tanzeel Kazi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接