Double型の場合、値が無限大でもSignメソッドは適切な符号を返しますが、非数(NaN, 0/0)の場合はArithmeticExceptionをスローします。
Math.Signメソッドで非数(NaN)を指定すると例外ArithmeticExceptionをスローする
Imports System
Class Sample
Shared Sub Main()
Console.WriteLine(Math.Sign(+1.0 / 0.0))
Console.WriteLine(Math.Sign(-1.0 / 0.0))
Console.WriteLine(Math.Sign( 0.0 / 0.0))
End Sub
End Class
実行結果
1 -1 ハンドルされていない例外: System.ArithmeticException: 関数は浮動小数点の非数値を受け入れません。 場所 System.Math.Sign(Double value) 場所 Sample.Main()