C# 需要一个随机数发生器吗

C# 需要一个随机数发生器吗,c#,random,floating-point,double,C#,Random,Floating Point,Double,我需要生成一个介于-0.5和0.5之间的随机数 我已经尝试了一个由用户Anthony Pegram针对堆栈溢出的解决方案。我对它做了一些修改(我需要在console.write行中调用并使用该方法) 通过尝试,我得到的数字超过了-0.5和0.5 我得到的东西像 1.7 1.005 etc生成0到1之间的随机数 private static Random random = new Random(); public static double GetRandomDouble_BetweenMinus

我需要生成一个介于-0.5和0.5之间的随机数

我已经尝试了一个由用户Anthony Pegram针对堆栈溢出的解决方案。我对它做了一些修改(我需要在console.write行中调用并使用该方法)

通过尝试,我得到的数字超过了-0.5和0.5 我得到的东西像

1.7 1.005
etc生成0到1之间的随机数

private static Random random = new Random();
public static double GetRandomDouble_BetweenMinusHalfPlusHalf()
{
    return random.NextDouble() - 0.5;
}

为什么要与float.MaxValue相乘?不要这样做,你很好。你绝对不应该在每次需要随机数时分配一个新的随机生成器,它将产生的序列将具有糟糕的统计特性和较差的性能,请考虑接受Theodor的答案。
private static Random random = new Random();
public static double GetRandomDouble_BetweenMinusHalfPlusHalf()
{
    return random.NextDouble() - 0.5;
}
public class MyRandomGenerator
{
    private static readonly Random _randomGenerator = new Random();

    public static float NextFloat()
    {
        var randomValue = _randomGenerator.NextDouble() - 0.5d;

        return (float)randomValue;
    }
}