【发布时间】:2019-03-31 01:32:46
【问题描述】:
我需要生成一个介于 -0.5 和 0.5 之间的随机数。
我尝试了用户 Anthony Pegram 的堆栈溢出解决方案。我对其进行了一些修改(我需要在 console.write 行中调用和使用该方法)
public static float nextfloat()
{
Random random = new Random();
double val = random.NextDouble();
val -= 0.5;
return float.MaxValue * (float)val;
}
通过尝试,我得到超出 -0.5 和 0.5 的数字 我得到了类似的东西
1.7 1.005 等等
【问题讨论】:
-
为什么要乘以 float.MaxValue?不要这样,你很好。
-
您绝对不应该在每次需要随机数时分配一个新的随机生成器,它将产生的序列将具有糟糕的统计特性和较差的性能,请考虑接受 Theodor 的回答。
标签: c# random floating-point double