JS - 如何生成一个长随机数?
JS - How can I generate a long random number?
我知道我需要使用 Math.random() 来制作随机数,但今天我尝试制作一个介于 1 和 9999 之间的随机数...(9 重复 19 次)并且我的输出总是以 3-5 个零结尾。如何生成更详细的随机数?
我做了什么:
const foo = Math.floor(Math.random() * parseInt("9".repeat(19)));
此外,我很确定我知道该怎么做,但是如果有人能告诉我,我该如何填充零以达到特定的位数?
(例如,pad(15,4) 变为 0015,因为您还需要 2 位数字才能使其成为 4 位数字)
您 运行 进入 Number.MAX_SAFE_INTEGER。最大精确整数值为 2^53-1,即 9007199254740991.
最好的办法可能是只使用一串随机整数(也解决填充问题):
let foo = '';
for(i=0; i<19; ++i) foo += Math.floor(Math.random() * 10);
alert(foo);
您需要使用编码为字符串的数字。像这样的循环:
var desiredMaxLength = 19
var randomNumber = '';
for (var i = 0; i < desiredMaxLength; i++) {
randomNumber += Math.floor(Math.random() * 10);
}
可以使用位于 https://github.com/rauschma/strint 的 strint
库对表示为字符串的数字进行算术运算。
我知道我需要使用 Math.random() 来制作随机数,但今天我尝试制作一个介于 1 和 9999 之间的随机数...(9 重复 19 次)并且我的输出总是以 3-5 个零结尾。如何生成更详细的随机数?
我做了什么:
const foo = Math.floor(Math.random() * parseInt("9".repeat(19)));
此外,我很确定我知道该怎么做,但是如果有人能告诉我,我该如何填充零以达到特定的位数? (例如,pad(15,4) 变为 0015,因为您还需要 2 位数字才能使其成为 4 位数字)
您 运行 进入 Number.MAX_SAFE_INTEGER。最大精确整数值为 2^53-1,即 9007199254740991.
最好的办法可能是只使用一串随机整数(也解决填充问题):
let foo = '';
for(i=0; i<19; ++i) foo += Math.floor(Math.random() * 10);
alert(foo);
您需要使用编码为字符串的数字。像这样的循环:
var desiredMaxLength = 19
var randomNumber = '';
for (var i = 0; i < desiredMaxLength; i++) {
randomNumber += Math.floor(Math.random() * 10);
}
可以使用位于 https://github.com/rauschma/strint 的 strint
库对表示为字符串的数字进行算术运算。