JS-如何生成长随机数?

时间:2019-01-28 22:48:45

标签: javascript random digits zero-padding

我知道我需要使用Math.random()来生成随机数,但是今天我尝试制作一个介于1和9999之间的随机数...(重复9次9次),并且我的输出始终以3-结尾5个零。如何生成更详细的随机数?

我所做的:

const foo = Math.floor(Math.random() * parseInt("9".repeat(19)));

此外,我非常确定我知道该怎么做,但是如果有人可以告诉我,我如何填充零以达到某个位数? (例如pad(15,4)变为0015,因为您需要再输入2位数字才能使其长4位)

3 个答案:

答案 0 :(得分:0)

您正在遇到Number.MAX_SAFE_INTEGER。最大精确积分值为2 ^ 53-1,即9007199254740991。

答案 1 :(得分:0)

最好的想法可能是只使用一串随机整数(也可以解决填充问题):

let foo = '';
for(i=0; i<19; ++i) foo += Math.floor(Math.random() * 10);
alert(foo);

答案 2 :(得分:0)

您需要使用编码为字符串的数字。这样的循环:

var desiredMaxLength = 19
var randomNumber = '';
for (var i = 0; i < desiredMaxLength; i++) {
    randomNumber += Math.floor(Math.random() * 10);
}

https://github.com/rauschma/strint上的strint库可以伪装成字符串形式的数字。