整数を0で割ったときにコンパイル時エラーが発生しますが、2倍の場合はコンパイルエラーはありませんが、実行時には無限大/ NaNが結果として得られます。どんなアイデアなぜ&なぜゼロで除算に来るときに異なる動作を持っていますか?Int vs Doubleとゼロ除算例外
void Main()
{
int number = 20;
var result1 = number/0; // Divide by zero compile time exception
double doubleNumber = 20;
var result2 = doubleNumber/0.0; // no compile time error. Result is infinity or NaN
}
これは、2つの数値システム**の数式**が定義されているためです。** –
Infinity/-Infinity/NaNに相当するintがないためです。浮動小数点演算は整数演算とは非常に異なる方法で行われます。 –