よくわかりません!
今日は11月3日です
DateTime DateTime = new DateTime(2010,11,3);
long shazbot = 1000000000 * DateTime.Day;
shazbotは-1294967296に出てきます
は???
よくわかりません!
今日は11月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に、そのうちの1つをaにします。long
long shazbot = 1000000000L * DateTime.Day;
l編集:の代わりにを使用すると、C#で警告が表示されますL。修理済み。
このように長くキャストします:
long shazbot = 1000000000L * DateTime.Day;