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


【解决方案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));
    }
    

    【讨论】:

      猜你喜欢
      • 2020-04-19
      • 1970-01-01
      • 2014-05-30
      • 2021-07-24
      • 2013-12-14
      • 2021-03-03
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多