0

这可能很有趣,但我真的不知道如何搜索以找到这个答案。

当我想加入字符串时,我总是使用这样的东西 "string = "something" + "somethingelse" "

但是如何用 INT 来做呢?:)

Random r = new Random();
int lvfirst = r.Next(485924948);
int lvsecond = r.Next(39);
int lvdone = lvfirst + lvsecond;
Globals.GlobalInt = lvdone;

我尝试做一个 long int 但它似乎不起作用它说明了 Long 所以如果你能帮助我如何将这 2 个随机数加入 1?我需要 1 个最大随机数“48592494839”

非常感谢!

4

4 回答 4

2

这段代码有两个问题:

  1. “粘在一起”的两个输出Next不会为您提供目标范围内的随机值。数学不适用于字符串。
  2. 它没有返回结果,而是将其存储在全局变量中。

如果您想要指定范围内的值,请使用

var result = (long) (r.NextDouble() * 48592494839);

这仍然不适用于任何目标范围,但可以轻松满足您的特定要求。

于 2012-07-07T12:25:40.757 回答
0

你可以这样做:

Random r = new Random();
int lvfirst = r.Next(485924948);
int lvsecond = r.Next(39);
long lvdone = Int64.Parse(lvfirst.ToString() + lvsecond.ToString());
Globals.GlobalInt = lvdone;

基本上我们将所有的转换ints为一个字符串,它将第二个数字附加到第一个数字的末尾,然后我们将它转​​换回一个int.

希望这可以帮助!

于 2012-07-07T12:22:06.450 回答
0

你想添加或连接你的 int 吗?

如果你想连接,你可以尝试:

long lvdone = long.Parse(lvfirst.toString() + lvsecond);

如果要添加它们并避免溢出:

long lvdone = ((long) lvfist) + lvsecond

如果您的数字必须任意长,请尝试使用 Decimal 而不是 long

于 2012-07-07T12:24:41.097 回答
-1

忽略随机的东西......这是连接数字的方法......

int a = 124;
int b = 101040507;

int digits = 32;
mask = 0x80000000;
while(a & mask == 0)
{
    digits--;
    mask= mask >> 1;
}


long result = b;
result = result << digits;
result = result | b;
于 2012-07-07T12:45:02.577 回答