【发布时间】:2012-12-16 20:52:47
【问题描述】:
可能重复:
Generating random numbers in Javascript in a specific range?
有人能告诉我如何使用 Math.random() 或其他方式获得一位随机数(1,2,3,.. 不是 0.1,0.2,.. 或 1.0,5.0,..) javascript?
【问题讨论】:
标签: javascript math random digit
可能重复:
Generating random numbers in Javascript in a specific range?
有人能告诉我如何使用 Math.random() 或其他方式获得一位随机数(1,2,3,.. 不是 0.1,0.2,.. 或 1.0,5.0,..) javascript?
【问题讨论】:
标签: javascript math random digit
var randomnumber=Math.floor(Math.random()*10)
其中 10 表示随机数将介于 0-9 之间。
【讨论】:
Math.random() 函数返回一个 0–1 范围内的浮点伪随机数(包括 0,但不包括 1),所以它不会返回 10 .
使用这个:
Math.floor((Math.random()*9)+1);
【讨论】:
+ 1 删除 0 并将 10 添加到可能的输出中。
0-9。
10 不是数字。我已经相应地更正了它,但 OP 的示例不包括 0 所以我认为这没关系。
Math.floor((Math.random()*10));
还有 0 到 10 之间的随机整数!
【讨论】:
Math.random() 返回一个介于0 和1 之间的浮点数,因此只需将其乘以10 并将其转换为整数:
Math.floor(Math.random() * 10)
或者更短一点的:
~~(Math.random() * 10)
【讨论】:
~~ 运算符
JavaScript 的 math.rand() 是不加密安全的,这意味着它不应该不用于密码、PIN 码和/或赌博相关的随机数生成。如果这是您的用例,请改用web crypto 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));
}
【讨论】: