Random Number Between 2 Double Numbers

后端 未结 12 2218
粉色の甜心
粉色の甜心 2020-11-27 10:25

Is it possible to generate a random number between 2 doubles?

Example:

public double GetRandomeNumber(double minimum, double maximum)
{
    return Ra         


        
12条回答
  •  感动是毒
    2020-11-27 11:20

    If you need a random number in the range [double.MinValue; double.MaxValue]

    // Because of:
    double.MaxValue - double.MinValue == double.PositiveInfinity
    
    // This will be equals to NaN or PositiveInfinity
    random.NextDouble() * (double.MaxValue - double.MinValue)
    

    Use instead:

    public static class RandomExtensions
    {
        public static double NextDoubleInMinMaxRange(this Random random)
        {
            var bytes = new byte[sizeof(double)];
            var value = default(double);
            while (true)
            {
                random.NextBytes(bytes);
                value = BitConverter.ToDouble(bytes, 0);
                if (!double.IsNaN(value) && !double.IsInfinity(value))
                    return value;
            }
        }
    }
    

提交回复
热议问题