【发布时间】:2019-06-22 00:16:13
【问题描述】:
我知道我需要使用 Math.random() 来制作随机数,但今天我尝试制作一个介于 1 和 9999 之间的随机数......(9 重复 19 次)并且我的输出总是以 3- 结尾5个零。如何生成更详细的随机数?
我做了什么:
const foo = Math.floor(Math.random() * parseInt("9".repeat(19)));
另外,我很确定我知道如何做到这一点,但如果有人能告诉我,我如何填充零以达到某个数字计数? (例如,pad(15,4) 变为 0015,因为您需要多 2 位数字才能使其长 4 位数字)
【问题讨论】:
-
在不损失精度的情况下可以表示的最大整数是
2^53 - 1,它有 16 位数字。换句话说,您不能在不丢失精度的情况下从 19 位长字符串派生整数值。证明:9007199254740991 + 1和9007199254740991 + 2都是9007199254740992。欢迎来到浮点值的世界。 -
所以,你可能想要的是
Math.floor(Math.random() * Number.MAX_SAFE_INTEGER);。
标签: javascript random digits zero-padding