问题产生的随机浮点值小于1

问题描述 投票:0回答:1

我需要一个函数来生成值小于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并不是问题,但我不是专家。

java android math random floating-point
1个回答
0
投票

此功能对我有用:

 public static final float getRandomF (float min, float max) {
    return min + Math.random() * (max - min);
 }
© www.soinside.com 2019 - 2024. All rights reserved.