次のようなもの:
1234.5678
2345.6789
3456.7890
だがしかし:
123.4567
今、私はこれを行います:
double number = Math.Ceiling ( random.NextDouble ( ) * 10000000 ) * 0.001;
しかし、それは常に私に 8 桁を与えるとは限りません。
これを行うための巧妙なトリックはありますか?
試すrandom.Next(10000000, 99999999+1) / 10000.0d;
編集:さらに9を追加
EDIT2: 1 マイナスの問題を修正
EDIT3: さらに 0 を追加しました。私の回答はどのように支持されましたか?
次のいずれかを使用します。
double number = Math.Ceiling(random.NextDouble() * 9000 * 10000 + 1000 * 10000) * 0.0001;
double number = Math.Ceiling(random.NextDouble() * 90000000 + 10000000) * 0.0001;
double number = random.Next(10000 * 10000 / 10, 10000 * 10000) / 10000d;
double number = random.Next(10000000, 100000000) / 10000d;
このようなもの?
Random r = new Random();
var item = r.Next(10000000, 100000000) * 0.0001m;
以下の消費者のコメントごとに...ここで10進数を使用する理由についての説明:
8 つの単一の乱数を生成し、それらを連結します。
double number = random.Next(1000 * 1000, 1000 * 1000 * 10) / 1000.0
Random rnd = new Random();
int num1 = rnd.Next(1000,9999);
int num2 = rnd.Next(1000,9999);
Console.WriteLine(num1.ToString()+"."+num2.ToString());
double rndNumber = new Random().NextDouble();
string testNumber = (rndNumber * 99999999).ToString("0000.0000");
double number = Double.Parse(r.Next(10000000, 99999999).ToString().Insert(4,"."));