◆ 計算部分は JavaScript のと一緒
  ◆ 0 で割ると Infinity
  ◆ Infinity + -Infinity や 0.0/0.0 は NaN
◆ それぞれ double と float 型に存在する
  ◆ decimal, int にはないので 1/0 はエラー 

C# にも Infinity, -Infinity, NaN がありました
> Math.Pow(2, 1023)
8.98846567431158E+307
> Math.Pow(2, 1024)

> -Math.Pow(2, 1024)
-∞

JavaScript では
> Math.pow(2, 1023)
8.98846567431158e+307
> Math.pow(2, 1024)
Infinity
> -Math.pow(2, 1024)
-Infinity
と 「Infinity」 と表示されますが C# だと ∞ 記号です

2 の 1024 から Infinity になるところも一緒のようです


C# の場合は 型があるので Infinity, -Infinity, NaN は float (Single)/double (Double) の型の値です
int や decimal にはありません

なので
> int i = 1;
> i/0
0 で除算しようとしました。
のようにエラーになります

float や double にキャストされるようにすれば大丈夫です
> i/0.0

Infinity は正確な値じゃなく Math.Pow(2, 1024) だったり Math.Pow(2, 1024) + 1 だったりしますが Infinity 同士の比較は true です
> 1/0.0 == 2/0.0+1
true

> double.PositiveInfinity == float.PositiveInfinity
true


NaN は 0/0 や -Infinity + Infinity などで発生します
JavaScript みたいに異なる型でもむりやり計算することはできないのでそれほど見ないです
ただ 一部のプロパティの初期値に例外な値 未設定の値として使われてたりします
> double.NegativeInfinity + double.PositiveInfinity
NaN
> 0.0 / 0.0
NaN

NaN 同士の比較は false です
> double.NaN == double.NaN
false
> float.NaN == float.NaN
false
> float.NaN == double.NaN
false

型があること以外 JavaScript と同じと考えて良さそうです


型がある分正確に double.PositiveInfinity と float.PositiveInfinity は一応ちがうものです
> 1f/0 is float
true
> 1f/0 is double
false
> 1.0/0 is float
false
> 1.0/0 is double
true