问题描述
我试图找到一种在我的Node脚本命令中运行的方法,例如,该方法会获得一个从0.01到10.85的随机数。 该数字必须看起来像0.01,而不是0.000000001。
我怎样才能做到这一点?
我当前的命令:
var randomTicket = helper.getRandomInt(0, 10.85);
该命令由于某种原因仅返回数字0
还有其他替代方法吗?
1楼
Peter Paul Kiefer
0
2015-07-25 13:53:22
Math.random可以解决问题。 它返回介于[0,1)之间的值(1是排他的)。 然后,您可以通过最大值和最小值之间的差异来缩放范围,并将最小值添加为偏移量。
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
但是,因为获得浮点值,所以您不能截取第二个位置后的小数。 您可以将其格式化为字符串。 我不确定,但是应该可以。
var number = getRandomArbitrary(0.01, 10.85);
var numString = number.toFixed(2);
编辑
如果仅生成整数,则将最小值和最大值乘以100.0,然后将结果除以100.0。
var number = getRandomArbitrary(1.0, 1085.0);
var numString = (number / 100.0).toFixed(2);
要么
var number = getRandomInt(1, 1085);
var numString = (number / 100.0).toFixed(2);