Half/Single/Doubleには、値が非数や無限大かどうかを調べる以下のメソッドが用意されています。

IsInfinityメソッド
値が正または負の無限大かどうか調べる。
値がPositiveInfinityまたはNegativeInfinityとなる場合はtrue、そうでなければfalseが返される。
IsPositiveInfinityメソッド
値が正の無限大かどうか調べる。
値がPositiveInfinityとなる場合はtrue、そうでなければfalseが返される。
IsNegativeInfinityメソッド
値が負の無限大かどうか調べる。
値がNegativeInfinityとなる場合はtrue、そうでなければfalseが返される。
IsNaNメソッド
値が非数かどうか調べる。
値がNaNとなる場合はtrue、そうでなければfalseが返される。
IsInfinity/IsNaNメソッドで値が無限大かどうか・非数かどうかを調べる
Imports System

Class Sample
  Shared Sub IsSpecialValue(ByVal d As Double)
    ' 値が無限大かどうか、非数かどうかを調べる
    Console.WriteLine("[Value: {0}]", d)
    Console.WriteLine("IsInfinity? {0}", Double.IsInfinity(d))
    Console.WriteLine("IsPositiveInfinity? {0}", Double.IsPositiveInfinity(d))
    Console.WriteLine("IsNegativeInfinity? {0}", Double.IsNegativeInfinity(d))
    Console.WriteLine("IsNaN? {0}", Double.IsNaN(d))
    Console.WriteLine()
  End Sub

  Shared Sub Main()
    Dim d0 As Double = 0.0
    Dim d1 As Double = +1.0 / 0.0
    Dim d2 As Double = -1.0 / 0.0
    Dim d3 As Double =  0.0 / 0.0

    IsSpecialValue(d0)
    IsSpecialValue(d1)
    IsSpecialValue(d2)
    IsSpecialValue(d3)
  End Sub
End Class
実行結果
[Value: 0]
IsInfinity? False
IsPositiveInfinity? False
IsNegativeInfinity? False
IsNaN? False

[Value: ∞]
IsInfinity? True
IsPositiveInfinity? True
IsNegativeInfinity? False
IsNaN? False

[Value: -∞]
IsInfinity? True
IsPositiveInfinity? False
IsNegativeInfinity? True
IsNaN? False

[Value: NaN]
IsInfinity? False
IsPositiveInfinity? False
IsNegativeInfinity? False
IsNaN? True