整数データ型 (Visual Basic)

-2,147,483,648 から 2,147,483,647 までの符号付き 32 ビット (4 バイト) の整数を保持します。

Remarks

Integer データ型は、32 ビットのプロセッサでパフォーマンスが最大になります。 他の整数型では、メモリとの間の読み込みと格納により長い時間がかかります。

Integer の既定値は 0 です。

リテラルの代入

Integer 変数を宣言し、10 進リテラル、16 進リテラル、8 進リテラル、または (Visual Basic 2017 以降) バイナリ リテラルを代入することによって初期化できます。 整数リテラルが Integer の範囲外にある場合 (つまり、Int32.MinValue より小さいか、Int32.MaxValue より大きい場合)、コンパイル エラーが発生します。

次の例では、整数 90,946 を 10 進リテラル、16 進リテラル、バイナリ リテラルで表したものが、Integer 値に割り当てられています。

Dim intValue1 As Integer = 90946
Console.WriteLine(intValue1)
Dim intValue2 As Integer = &H16342
Console.WriteLine(intValue2)

Dim intValue3 As Integer = &B0001_0110_0011_0100_0010
Console.WriteLine(intValue3)
' The example displays the following output:
'          90946
'          90946
'          90946

注意

16 進リテラルを表すにはプレフィックス &h または &H を使い、バイナリ リテラルを表すにはプレフィックス &b または &B を使い、8 進リテラルを表すにはプレフィックス &o または &O を使います。 10 進リテラルには、プレフィックスはありません。

Visual Basic 2017 以降では、次の例に示すように、アンダースコア文字 _ を桁区切り記号として使って読みやすくすることもできます。

Dim intValue1 As Integer = 90_946
Console.WriteLine(intValue1)

Dim intValue2 As Integer = &H0001_6342
Console.WriteLine(intValue2)

Dim intValue3 As Integer = &B0001_0110_0011_0100_0010
Console.WriteLine(intValue3)
' The example displays the following output:
'          90946
'          90946
'          90946

Visual Basic 15.5 以降では、プレフィックスと 16 進数、2 進数、または 8 進数の間に先頭の区切り記号としてアンダースコア文字 (_) を使用することもできます。 次に例を示します。

Dim number As Integer = &H_C305_F860

アンダースコア文字を先頭の区切り記号として使用するには、以下の要素を Visual Basic プロジェクト (*.vbproj) ファイルに追加する必要があります。

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

詳細については、「Visual Basic 言語バージョンの選択」を参照してください。

数値リテラルには、次の例に示すように、I 型文字を含めて、Integer データ型を表すこともできます。

Dim number = &H_035826I

プログラミングのヒント

  • 相互運用の考慮事項。 オートメーション オブジェクトや COM オブジェクトなど、.NET Framework 用に作成されていないコンポーネントを使用する場合、他の環境では整数型 (Integer) のデータ幅 (16 ビット) が異なることに注意してください。 そのようなコンポーネントに 16 ビットの引数を渡す場合は、新しい Visual Basic のコードで、整数型 (Integer) ではなく短整数型 (Short) として宣言します。

  • 拡大変換。 Integer データ型は、LongDecimalSingle、または Double に拡大変換されます。 これは、Integer エラーを発生させることなく、これらの型のいずれかに System.OverflowException を変換できることを意味します。

  • 型宣言文字。 あるリテラルにリテラルの型文字 I を付けると、そのリテラルは Integer に変換されます。 ある識別子に識別子の型文字 % を付けると、その識別子は整数型 (Integer) に変換されます。

  • Framework のデータ型 .NET Framework において対応する型は、System.Int32 構造体です。

範囲

整数型の変数をその型の範囲外の数値に設定しようとすると、エラーが発生します。 小数に設定しようとすると、最も近い整数値に丸められます。 2 つの整数値に等しく近い場合は、最も近い偶数の整数に丸められます。 この処理により、常に中間値を単一方向に丸めるために発生する丸め誤差が最小限に抑えられます。 丸めの例を次のコードに示します。

' The valid range of an Integer variable is -2147483648 through +2147483647.  
Dim k As Integer  
' The following statement causes an error because the value is too large.  
k = 2147483648  
' The following statement sets k to 6.  
k = 5.9  
' The following statement sets k to 4  
k = 4.5  
' The following statement sets k to 6  
' Note, Visual Basic uses banker’s rounding (toward nearest even number)  
k = 5.5  

関連項目