[]-35544/レス
Re[1]: C#のlong型でオーバーフローになる
Hongliang

>  ans = 50000 * 50000; ・・・50000と入力した時点でオーバーフローになります。
1. C#において、接尾辞のない整数値は、intとして扱われます。
2. int同士の演算はintを返します。
この仕様のため、50000 * 50000はintで計算され、intの上限である約21億を超える25億となってオーバーフローになります。

接尾辞Lを付けるとかします。
ans = 50000L * 50000;
// 1つ目の50000はlong型になり、long * intはlong型を返します。

50000が変数なら、明示的にキャストするという方法もあります。
int x = 50000;
ans = (long)x * x;

11/20 12:19
[|]
35543のレス
35544にレスを書く
<前のレス

Child K-Tai