gpt4 book ai didi

Java:生成一个范围内的随机 double 值(包括范围的最小值和最大值)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:03:47 27 4
gpt4 key购买 nike

我需要生成一个介于 -0.10 和 0.25 之间的随机 double ,包括 -0.10 和 0.25。我还不完全理解 java 的随机数生成器,所以我不太确定如何执行此操作。我知道下面的代码会生成该范围内的数字,但我几乎 100% 确定它还不包括在内。我如何将其更改为包含范围的最小值和最大值?

public double randDouble() {
//formula: (Math.random() * (max - min) + min
//in this case, min = -0.10 and max = 0.25
return (Math.random() * 0.35) - 0.10;
}

我的问题与@javaguy 正在谈论的问题不同,因为在该线程的任何地方都没有人说如何使两端都包含在内。我已经测试了这段代码,但没有看到 -.10 或 0.25 的输出,所以除非我的测试不够大,否则我看不出它是如何包含两端的。

最佳答案

由于您希望值介于 -0.10 和 0.25 之间(包括两者),我建议采用不同的方法来控制随机值的粒度。使用 Math.random() 将返回 0.0(含)和 1.0(不含)之间的值,因此使用您的方法永远不会获得 0.25 的值。而是使用 Random() 类并使用整数来包含两端。

Random randomValue = new Random();
int randomInt = randomValue.nextInt(3501) - 1000; //Will get integer values between -1000 and 2500
Double rangedValue = Double(randomInt)/10000.0 // Get values between -0.10 and 0.25

或者,您可以通过增加传递给 randomValue.nextInt() 的值的大小并相应地更改最后一行中除以的值来增加小数位。

关于Java:生成一个范围内的随机 double 值(包括范围的最小值和最大值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43352043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com