我需要一个函数来生成值小于1的浮点数,我有以下代码:
public float randFloat(float min, float max) {
float randomNum = rand.nextFloat() * ((max - min) + 1) + min;
return randomNum;
}
我用很小的值调用该函数,例如:
minRadius = sh * 0.0001f;
maxRadius = sh * 0.0005f;
radius = Util.getInstance().randFloat(minRadius, maxRadius);
在那种情况下,sh
是1080,所以:
minRadius = 0.108f;
maxRadius = 0.54f;
然后,该函数应返回介于0.108和0.54之间的值,但取而代之的是,有时返回的值大于0.54f,例如1.1f,1.4f等...
函数有什么问题?
*我在函数中加1,因为此函数基于randomInt(),在该函数中,我加1是因为nextInt通常不包含最高值,因此加1使其包含在内。有时给我的值为0.1、0.2等,所以我认为加1并不是问题,但我不是专家。
此功能对我有用:
public static final float getRandomF (float min, float max) {
return min + Math.random() * (max - min);
}