1000000000 * 3 = -1294967296?
-
28-09-2019 - |
Вопрос
Я в замешательстве!
Сегодня 3 ноября
DateTime DateTime = new DateTime(2010,11,3);
long shazbot = 1000000000 * DateTime.Day;
Shazbot выходит на -1294967296
Хм???
Решение
shazbot
может быть А. long
, но ни один 1000000000
или DateTime.Day
находятся. Итак, C # int
Сначала умножение (что приводит к переполнению), а затем бросит его long
хранить внутрь shazbot
.
Если вы хотите long
результат, сделайте один из них long
, как это:
long shazbot = 1000000000L * DateTime.Day;
Редактировать: C # дает вам предупреждение, если вы используете l
вместо L
. Отказ Исправлена.
Другие советы
Бросить до долго, как это:
long shazbot = 1000000000L * DateTime.Day;
Не связан с StackOverflow