7

我很困惑!

今天是11月3日

DateTime DateTime = new DateTime(2010,11,3);
long shazbot = 1000000000 * DateTime.Day;

shazbot 出现在 -1294967296

啊???

4

2 回答 2

41

shazbot可能是 a long,但两者都不1000000000DateTime.Day。因此,C#int首先进行乘法运算(这会导致溢出),然后将其转换为 along以存储在shazbot.

如果您想要一个long结果,请将其中一个设为 a long,如下所示:

long shazbot = 1000000000L * DateTime.Day;

编辑:如果您使用 C#l而不是L. 固定的。

于 2010-11-03T14:14:25.113 回答
1

长这样:

long shazbot = 1000000000L * DateTime.Day;
于 2010-11-03T14:13:33.630 回答