1000000000 * 3 = -1294967296?
Я запуталась!
сегодня 3 ноября
DateTime DateTime = new DateTime(2010,11,3);
long shazbot = 1000000000 * DateTime.Day;
shazbot выходит на -1294967296
да???
2 ответов
shazbot
может быть long
, но ни 1000000000
или DateTime.Day
есть. Итак, C# делает int
умножение сначала (что приводит к переполнению), а затем бросает его в long
в магазине в shazbot
.
если вы хотите long
результат, сделайте один из них long
, например:
long shazbot = 1000000000L * DateTime.Day;
Edit: C# дает вам предупреждение, если вы используете l
вместо L
. Зафиксированный.