对于我的硒测试,我需要一个价值提供者来在每种情况下获得一个 5 位数字。javascript 的问题在于 apiMath.random
只支持生成0.
起始浮点数。所以它必须在10000
和之间99999
。
所以如果它只生成0.10000
和更高会很容易,但它也会生成0.01000
. 所以这种方法没有成功:
Math.floor(Math.random()*100000+1)
是否可以在每种情况下生成一个 5 位数字(在表达式中!)?
对于我的硒测试,我需要一个价值提供者来在每种情况下获得一个 5 位数字。javascript 的问题在于 apiMath.random
只支持生成0.
起始浮点数。所以它必须在10000
和之间99999
。
所以如果它只生成0.10000
和更高会很容易,但它也会生成0.01000
. 所以这种方法没有成功:
Math.floor(Math.random()*100000+1)
是否可以在每种情况下生成一个 5 位数字(在表达式中!)?
关于什么:
Math.floor(Math.random()*90000) + 10000;
是的,您可以在任何给定范围内创建随机数:
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)
那这个呢?
var generateRandomNDigits = (n) => {
return Math.floor(Math.random() * (9 * (Math.pow(10, n)))) + (Math.pow(10, n));
}
generateRandomNDigits(5)
您可以使用以下函数获得包含任何给定最小和最大数字的随机整数:
function getRandomIntInclusive(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
有关更多示例和其他用例,请查看Math.random MDN 文档。