<分区>
Possible Duplicate:
Random floating point double in Inclusive Range
我正在做一个项目,我需要 0.0 和 1.0 之间的随机 float (包括两者)。考虑了一段时间后,我发现它对我的项目来说可能并不那么重要,所以我只使用标准:
new Random().nextFloat();
生成从 0.0(含)到 1.0(不含)的 float 。
但我一直在想,使用 1.0 inclusive 到底是如何实现的?
我能想到的一种方法是(伪代码):
new Random().nextFloat() * (1.0 + "lowest possible value above 0");
我能想到的另一种方法是:
float myRandomFloat = 0;
float rand1 = new Random().nextFloat(); // [0;1)
float rand2 = 1.0f - new Random().nextFloat(); // (0;1]
boolean randPicker = new Random().nextBoolean();
if (randPicker)
myRandomFloat = rand1;
else
myRandomFloat = rand2;
但我认为这应该更简单吗?所以我真正的问题是:是否有真正或更好的方法来做到这一点?