double 指定范围随机数


double u=0.8;
想取0.02 至U=0.8随机数,每次随机数不一样,有浮动,不超过u的值0.8怎样写呢?

做了一个示例,如下:

using System;
using System.Collections.Generic;

namespace ConsoleApp2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            NewNumber(100);
            Console.WriteLine($"{string.Join(",", RandomList)}");
            Console.ReadKey();
        }

        public static Random Random = new();
        public static List<double> RandomList = new();
        static double _myNumber;
        static void NewNumber(int count)
        {

            for (var i = 0; i < count; i++)
            {
                _myNumber = GetRandomNumber(0.02, 0.8);
                if (!RandomList.Contains(_myNumber))
                    RandomList.Add(_myNumber);
            }

        }

        public static double GetRandomNumber(double minimum, double maximum)
        {
            return Math.Round(Random.NextDouble() * (maximum - minimum) + minimum, 2);
        }
    }
}

何必呢,乘一个倍数 变成整数,Random取随机数后 再除这个数就好了,虽然不能全部覆盖。


protected static double NextDouble(Random random, double miniDouble, double maxiDouble)
        {

            double num = maxiDouble - miniDouble;
            if (num <= double.MaxValue)
            {
                var ran = random.NextDouble();
                var numRes = (ran * (double)num) + miniDouble;
                return numRes;
            }


            int RandNum = random.Next();

            if ((random.Next() % 2 == 0) ? true : false)
            {
                num = -num;
            }

            double num2 = num;
            num2 += 2147483646.0;
            num2 = num2 / 4294967293.0;


            return (num2 * (double)num) + miniDouble;

        }

直接random随机数整数,然后除以倍数不一样吗?