「VB.NET」MathクラスのSignで値の符号を取得する
書式
Math.Sign(数値)
Sign(Single) 単精度浮動小数点数の符号を示す値を返します
Sign(Int64) 64 ビット符号付き整数の符号を示す正数を返します。
Sign(Decimal) 10 進数の符号を示す整数を返します。
使用例
Imports System.Threading Module Module1 Sub Main() Dim str As String = "{0}: {1,3} が 0 {2} ." Dim nl As String = Environment.NewLine 'Byte型変数の宣言 Dim xBte As Byte = 0 'Short型変数の宣言 Dim ySht As Short = -8 'Integer型変数の宣言 Dim xIntA As Integer = -6 'Long型変数の宣言 Dim xLng As Long = -5 'Single型変数の宣言 Dim xSng As Single = 0.2F 'Double型変数の宣言 Dim xDb As Double = 7.0 'Decimal型変数の宣言 Dim xDec As [Decimal] = -8D ' 次のタイプはCLSに準拠していません Dim xSbyte1 As SByte = -101 Console.WriteLine("{0}次のタイプの値の符号をテスト:", nl) Console.WriteLine(str, "Byte ", xBte, Test(Math.Sign(xBte))) Console.WriteLine(str, "Int16 ", ySht, Test(Math.Sign(ySht))) Console.WriteLine(str, "Int32 ", xIntA, Test(Math.Sign(xIntA))) Console.WriteLine(str, "Int64 ", xLng, Test(Math.Sign(xLng))) Console.WriteLine(str, "Single ", xSng, Test(Math.Sign(xSng))) Console.WriteLine(str, "Double ", xDb, Test(Math.Sign(xDb))) Console.WriteLine(str, "Decimal", xDec, Test(Math.Sign(xDec))) ' Console.WriteLine("{0}次のタイプはCLSに準拠していません", nl) Console.WriteLine(str, "SByte ", xSbyte1, Test(Math.Sign(xSbyte1))) Console.ReadKey() End Sub '比較関数Testの定義 Public Function Test(ByVal [value] As Integer) As [String] If [value] = 0 Then Return "です" ElseIf [value] < 0 Then Return "未満です" Else Return "より多い値です" End If End Function 'Test End Module
実行結果
次のタイプの値の符号をテスト:
Byte : 0 が 0 です .
Int16 : -8 が 0 未満です .
Int32 : -6 が 0 未満です .
Int64 : -5 が 0 未満です .
Single : 0.2 が 0 より多い値です .
Double : 7 が 0 より多い値です .
Decimal: -8 が 0 未満です .
次のタイプはCLSに準拠していません
SByte : -101 が 0 未満です .