如何在javascript中获取一位随机数? [复制]

Posted

技术标签:

【中文标题】如何在javascript中获取一位随机数? [复制]【英文标题】:How to get one digit random number in javascript? [duplicate] 【发布时间】: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?

【问题讨论】:

可能重复:Generating random numbers in Javascript in a specific range?、Random between two numbers in Javascript、Random number between -10 and 10 in JavaScript、 【参考方案1】:
var randomnumber=Math.floor(Math.random()*10)

其中 10 表示随机数将介于 0-9 之间。

【讨论】:

10 不是一位数,是吗? 大声笑,不,但假设这是 OP 不希望的小数部分,他们可以解决!已编辑。 对于任何想知道的人来说,Math.random() 函数返回一个 0–1 范围内的浮点伪随机数(包括 0,但不包括 1),所以它不会返回 10 .【参考方案2】:

使用这个:

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

【讨论】:

+ 1 删除 0 并将 10 添加到可能的输出中。 问题是“数字”,所以我认为它的意思是0-9 @Blender 你说得对,10 不是数字。我已经相应地更正了它,但 OP 的示例不包括 0 所以我认为这没关系。【参考方案3】:
Math.floor((Math.random()*10));

还有 0 到 10 之间的随机整数!

【讨论】:

【参考方案4】:

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

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

或者更短一点的:

~~(Math.random() * 10)

【讨论】:

不错,不知道 ~~ 运算符【参考方案5】:

免责声明:

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));

【讨论】:

以上是关于如何在javascript中获取一位随机数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何创建随机数的多个阵列为JavaScript数据随机化?

JavaScript中如何保留一位小数;

高级表单验证 - 如何在用户完成后在字段旁边添加复选标记? --Javascript [关闭]

如何从数组中获取随机元素[重复]

在JAVA里怎么获得9~11位的随机数

从 Wikipedia 获取随机摘录(Javascript,仅限客户端)