雑記 |
Visual Basic 中学校 > 雑記 >
2021/4/4
この記事が対象とする製品・バージョン
![]() |
Visual Studio 2019 | ◎ | 対象です。 |
![]() |
Visual Studio 2017 | ◎ | 対象です。 |
![]() |
Visual Studio 2015 | ◎ | 対象です。 |
![]() |
Visual Studio 2013 | ◎ | 対象です。 |
![]() |
Visual Studio 2012 | ◎ | 対象です。 |
![]() |
Visual Studio 2010 | ◎ | 対象です。 |
![]() |
Visual Studio 2008 | ◎ | 対象です。 |
![]() |
Visual Studio 2005 | ◎ | 対象です。 |
![]() |
Visual Studio 2003 | ◎ | 対象です。 |
![]() |
Visual Studio (2002) | ◎ | 対象です。 |
小数…小数が表現できるかを示しています。
正確…正確な値を示すことができるかを表しています。×の場合は値に誤差が発生しますので、金額の計算など値の正確さが重要な場合は使用できません。
VB | 名称 読み方 |
小数 | 正確 | 値の範囲 |
---|---|---|---|---|
Boolean | 論理型 ブール/ブーリアン |
- | - | True または False |
Byte | バイト型 バイト |
× | 〇 | 0 ~ 255 |
Char | 文字型 キャラ |
- | - | 1つのUnicodeのコードポイント ※多くの文字は1つのコードポイントで1文字ですが、複数のコードポイントで1文字を表す場合もあります。 ※数値に変換すると0 ~ 65535ですが数値用ではありません。 |
Short | 短整数型 ショート |
× | 〇 | -32768 ~ 32767 |
Integer | 整数型 インテジャー |
× | 〇 | -2147483648 ~ 2147483647 |
Long | 長整数型 ロング |
× | 〇 | -9223372036854775808 ~ 9223372036854775807 |
SByte | 符号付きバイト型 エスバイト |
× | 〇 | VB2005以降で使用可能。 -128 ~ 127 |
UShort | 符号なし短整数型 ユーショート |
× | 〇 | VB2005以降で使用可能。 0 ~ 65535 |
UInteger | 符号なし整 数型 ユーインテジャー |
× | 〇 | VB2005以降で使用可能。 0 ~ 4294967295 |
ULong | 符号なし長整数型 ユーロング |
× | 〇 | VB2005以降で使用可能。 0 ~ 18446744073709551615 |
Decimal | 十進型 デシマル |
〇 | 〇 | ※小数の桁数によって異なります。 ・小数の桁数が0の場合 ・小数の桁数が28桁の場合 ・一番細かい値(分解能) |
Single | 単精度浮動小数点型 シングル |
〇 | × | -340282350000000000000000000000000000000 ~ 340282350000000000000000000000000000000 一番細かい値(分解能) |
Double | 倍精度浮動小数点型 ダブル |
〇 | × | -17976931348623157000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000 0000000000000000000000000 ~ 179769313486231570000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000 000000000000000000000000 一番細かい値(分解能) |
Date | 日付型 デイト |
- | - | 0001年1月1日 0時00分00秒 ~ 9999年12月31日 23時59分59.9999999秒 一番細かい値(分解能) 100ナノ秒 |
Object | オブジェクト型 オブジェクト |
- | - | (任意の型を格納できます) |
String | 文字列型 ストリング |
- | - | 0 個 ~ 約 20 億個の文字 (厳密にはUnicodeのコードポイント) |
読み方は私が一般的だと思う読み方です。絶対的なものではありません。
通常は次のように使い分けてください。
使用する型 | |
---|---|
整数 | Integer |
もっと桁数の大きい整数 | Long |
さらに桁数の大きい整数 または、 小数部分がある数値 |
Decimal |
これで何か問題がある場合は、個別に検討します。いくつかのケースを紹介します。
この表にはVBの型ではありませんが、フレームワークで定義されている方もいくつか載せています。たとえば、無限の桁数の数値が必要な場合はフレームワークのBigIntegerが使用できます。
金額・数量 | Decimal |
---|---|
科学的な計算(細かい誤差が許容できる場合) | Double |
文字コード | Char |
巨大な桁数の数値(小数あり、誤差あり) | Double |
桁数に制限がない数値 | System.Numerics.BigInteger |
APIなど外部と連携 | Integer |
バイナリーデータ | Byte |
日付・時刻 | Date |
期間 | System.TimeSpan |
平面座標 | System.Drawing.Point または System.Drawing.PointF |
虚数・複素数 | System.Numerics.Complex |
位置情報(緯度、経度、高度) | System.Device.Location.GeoCoordinate |
平面ベクトル | System.Numerics.Vector2 |
空間ベクトル | System.Numerics.Vector3 |
正確列 が × の場合の誤差の例
下記の例では、0.05 を 10回 たし算するので、結果は 0.5 になることを期待しますが、実際には 0.5 にはなりません。
Dim value As Single = 0.05
value += 0.05F ' 0.05 × 2 = 0.1 になることを期待
value += 0.05F ' 0.05 × 3 = 0.15 になることを期待
value += 0.05F ' 0.05 × 4 = 0.2 になることを期待
value += 0.05F ' 0.05 × 5 = 0.25 になることを期待
value += 0.05F ' 0.05 × 6 = 0.3 になることを期待
value += 0.05F ' 0.05 × 7 = 0.35 になることを期待
value += 0.05F ' 0.05 × 8 = 0.4 になることを期待
value += 0.05F ' 0.05 × 9 = 0.45 になることを期待
value += 0.05F ' 0.05 × 10= 0.5 になることを期待
Debug.WriteLine(value) '0.50000006 と出力されます。
VBの型 | フレームワークの型 | サイズ (バイト) |
型宣言文字 | 型文字 | 実数リテラルの記述例 | 備考 |
---|---|---|---|---|---|---|
Boolean | System.Boolean | ※1 | True または False | |||
Byte | System.Byte | 1 | 1 | |||
Char | System.Char | 2 | c | "字"c | ||
Short | System.Int16 | 2 | S | 1S | ||
Integer | System.Int32 | 4 | % | I | 1I | パフォーマンスが良いことが多い。(特に32ビットCPUの場合) |
Long | System.Int64 | 8 | & | L | 1L | |
SByte | System.SByte | 1 | 1 | |||
UShort | System.UInt16 | 2 | US | 1US | ||
UInteger | System.UInt32 | 4 | UI | 1UI | ||
ULong | System.UInt64 | 8 | UL | 1UL | ||
Decimal | System.Decmal | 16 | @ | D | 1D | 数値の中でパフォーマンスが最も悪い。 0 を除いた場合の絶対値の最小値は 0.0000000000000000000000000001 (1E-28) |
Single | System.Single | 4 | ! | F | 1.0F | 値の範囲 負の場合:-3.4028235E+38 ~ -1.401298E-45 正の場合:1.401298E-45 ~ 3.4028235E+38 |
Double | System.Double | 8 | # | R | 1.0R | 値の範囲 負の場合: 正の場合: |
Date | System.DateTime | 8 | #6/27/2024# | |||
Object | System.Object | 4 または 8 ※2 | ||||
String | System.String | ※1 | $ | "文字列" |
サイズは情報量のサイズです。実際に使用する物理メモリのサイズではありません。
※1 プラットフォームによってサイズが異なります。
※2 32ビットのプラットフォームの場合4バイト、64ビットの場合8バイト。
データ型の概要 - Visual Basic | Microsoft Docs