在int64中获取随机数。 (大号码)

时间:2018-06-20 16:30:10

标签: c#

错误:

  

$ 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是数字起伏。

2 个答案:

答案 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));
相关问题