Вопрос

Я в замешательстве!

Сегодня 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;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top