JavaScriptexpression式在每种情况下生成一个5位数字
对于我的seleniumtesting,我需要一个价值提供商在每一个情况下得到一个5位数的数字。 JavaScript的问题是Math.random
的api只支持生成一个0.
起始浮点数。 所以它必须在10000
到99999
之间。
所以如果它只会产生0.10000
或者更高,那么会很容易,但是它也会产生0.01000
。 所以这种方法不成功:
Math.floor(Math.random()*100000+1)
是否可以在每种情况下(在expression式中)生成一个5位数的数字?
关于什么:
Math.floor(Math.random()*90000) + 10000;
是的,你可以在任何给定的范围内创build随机数字:
var min = 10000; var max = 99999; var num = Math.floor(Math.random() * (max - min + 1)) + min;
或简化:
var num = Math.floor(Math.random() * 90000) + 10000;
如果你想生成一个邮政编码,并且不介意只要它是5位数就可以使用前导零:
(""+Math.random()).substring(2,7)
您可以使用以下函数获得包含任何给定的最小和最大数字的随机整数:
function getRandomIntInclusive(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; }
有关更多示例和其他用例,请查看Math.random MDN文档 。