我知道我需要使用Math.random()来生成随机数,但是今天我尝试制作一个介于1和9999之间的随机数...(重复9次9次),并且我的输出始终以3-结尾5个零。如何生成更详细的随机数?
我所做的:
const foo = Math.floor(Math.random() * parseInt("9".repeat(19)));
此外,我非常确定我知道该怎么做,但是如果有人可以告诉我,我如何填充零以达到某个位数? (例如pad(15,4)变为0015,因为您需要再输入2位数字才能使其长4位)
答案 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
库可以伪装成字符串形式的数字。