错误:
$ exception {“对于Int32,值太大或太小。”} System.OverflowException
我的代码:
Random R = new Random();
if (NUD_1.Value > NUD_2.Value)
return;
int v = R.Next((int)NUD_1.Value ,(int)NUD_2.Value);
Label_generate2.Text = v.ToString();
我要生成数字。但是当我输入一个大数字时,它给了我这个错误。 NUD是数字起伏。
答案 0 :(得分:1)
您要做的就是声明:
Int64 NUD_1Value = NUD_1.Value;
Int64 NUD_2Value = NUD_2.Value;
然后使用NUD_1Value而不是NUD.1Value
它将起作用
编辑:
检查以下内容。它对我有用:
Random R = new Random();
double NUD_1Value = 1;
double NUD_2Value = 999999999999999; //15-digit number
var next = R.NextDouble();
double v = NUD_1Value + (next * (NUD_2Value - NUD_1Value));
MessageBox.Show(v.ToString());
答案 1 :(得分:0)
尝试:
long v = (long)Math.Round(NUD_1.Value + R.NextDouble() * ((double)NUD_2.Value - (double)NUD_1.Value));