JavaScript,生成一个长度为 9 个数字的随机数

新手上路,请多包涵

我正在寻找一种高效、优雅的方法来生成长度为 9 位的 JavaScript 变量:

示例:323760488

原文由 AnApprentice 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 737
2 个回答

您可以生成 9 个随机数字并将它们连接在一起。

或者,您可以调用 random() 并将结果乘以 1000000000:

 Math.floor(Math.random() * 1000000000);

由于 Math.random() 生成一个介于 0 和 1 之间的随机双精度数,您将有足够的精度位数以在最低有效位仍然具有随机性。

如果您想确保您的号码以非零数字开头,请尝试:

 Math.floor(100000000 + Math.random() * 900000000);

或者用零填充:

 function LeftPadWithZeros(number, length)
{
    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }

    return str;
}

或者使用这个内联“技巧”填充。

原文由 ggg 发布,翻译遵循 CC BY-SA 4.0 许可协议

为什么不从 Math.random() 字符串表示中提取数字?

 Math.random().toString().slice(2,11);
/*
Math.random()                         ->  0.12345678901234
             .toString()              -> "0.12345678901234"
                        .slice(2,11)  ->   "123456789"
 */

(要求是每个 javascript 实现 Math.random() 的精度至少为小数点后 9 位)

原文由 mykhal 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏