1.41421
との間のランダムな倍精度数を生成するための簡潔で最新の C# コードを探してい3.14159
ます。数値は[0-9]{1}.[0-9]{5}
フォーマットにする必要があります。
何らかの形で利用するソリューションがEnumerable.Range
これをより簡潔にするかもしれないと考えています。
1.41421
との間のランダムな倍精度数を生成するための簡潔で最新の C# コードを探してい3.14159
ます。数値は[0-9]{1}.[0-9]{5}
フォーマットにする必要があります。
何らかの形で利用するソリューションがEnumerable.Range
これをより簡潔にするかもしれないと考えています。
2 つの値の間の乱数を返すメソッドを簡単に定義できます。
private static readonly Random random = new Random();
private static double RandomNumberBetween(double minValue, double maxValue)
{
var next = random.NextDouble();
return minValue + (next * (maxValue - minValue));
}
次に、目的の値を指定してこのメソッドを呼び出すことができます。
RandomNumberBetween(1.41421, 3.14159)
このようなものを使用してください。
Random random = new Random()
int r = random.Next(141421, 314160); //+1 as end is excluded.
Double result = (Double)r / 100000.00;
Random r = new Random();
var number = r.Next(141421, 314160) / 100000M;
また、10 進数をパターンに一致させることはできません。たとえば、番号がある場合、形式1.5
と一致しません。1.50000
したがって、結果を文字列としてフォーマットする必要があります。
string formattedNumber = number.ToString("0.00000");
これを使いました。これが役立つことを願っています。
Random Rnd = new Random();
double RndNum = (double)(Rnd.Next(Convert.ToInt32(LatRandMin.Value), Convert.ToInt32(LatRandMax.Value)))/1000000;
役立つ既製の実装については、次のリンクを確認してください。
System.Random から直接派生した乱数ジェネレーター (MersenneTwister など) の上に構築された広範なディストリビューションは特に興味深いものであり、すべて便利な拡張メソッド (NextFullRangeInt32、NextFullRangeInt64、NextDecimal など) を提供します。もちろん、デフォルトの SystemRandomSource をそのまま使用することもできます。これは、単純に System.Random を拡張メソッドで修飾したものです。
必要に応じて、RNG インスタンスをスレッド セーフとして作成することもできます。
とても便利です。