「VB.NET」MathクラスのSignで値の符号を取得する

2021年10月6日

書式
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 未満です .

VB.net

Posted by arkgame