よくわかりません!
今日は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;