gpt4 book ai didi

c# Double.MinValue 和 Double.MaxValue 之间的随机数

转载 作者:行者123 更新时间:2023-12-02 18:58:31 28 4
gpt4 key购买 nike

我已经通过谷歌搜索了,但还没有答案。

所以问题是,我需要创建随机生成器 API,如下所示:

public static Double Range(Double minValue, Double maxValue)
{
return random.NextDouble() * (maxValue - minValue) + minValue; // random is just System.Random
}

一切正常,直到我将 Double.MinValueDouble.MaxValue 放入参数中,因为它生成“无限”无效 double (因为该操作产生 64 位之外的值)双范围)。

有没有办法编写代码,以便即使使用 Double.MinValueDouble.MaxValue 也可以处理和生成有效的 double ?

最佳答案

考虑将计算随机 double 的逻辑更改为类似的内容

private static Double Range(Double minValue, Double maxValue)
{
var x = random.NextDouble();

return x * maxValue + (1 - x) * minValue;
}

你失败的原因是因为double.MinValue将为负数,因此如果你执行maxValue - minValue,你实际上是在执行double.MaxValue * 2 .

关于c# Double.MinValue 和 Double.MaxValue 之间的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65900931/

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