数値型変数には,以下の種類があります。型の名称は,Lesson 3で述べた通り大文字小文字を区別しません。
変数の型名 | 表す値 | データ量 | |
---|---|---|---|
Integer | 符号付きの整数 | -215 〜 215 - 1 | 16ビット |
Long | -231 〜 231 - 1 | 32ビット | |
Byte | 符号なしの整数 | 0 〜 28 - 1 | 8ビット |
Word | 0 〜 216 - 1 | 16ビット | |
DWord | 0 〜 232 - 1 | 32ビット | |
Single | 実数(小数) | -3.4×1038 〜 3.4×1038 有効数字が2進法で23桁(10進法で6桁) | 32ビット |
Double | -1.7×10308 〜 1.7×10308 有効数字が2進法で52桁(10進法で15桁) | 64ビット |
ちなみに
Single,Doubleは小数を扱います。これらは浮動小数点数といい,データが「符号」「指数」「仮数」の3部に分かれています。
例えばSingle型の場合データ構造は以下のようになっています。
1ビット | 8ビット | 23ビット |
符号 s | 指数 e = e7e6・・・e0 | 仮数 m = m22m21・・・m0 |
表す値=1.m22m21・・・m0 × 2e - 127
s=0ならば符号は+,s=1ならば符号は−である。
浮動小数点方式は内部では数値を2進法で格納しているため(2進法の詳細はSpecial Lesson 6にて),10進法で計算していて誤差が生じない所でも誤差が生じる場合があります。
例えば,以下のプログラムを見て下さい。
#prompt Dim s As Single, d As Double s=0.1 d=s Print d
これを実行すると
0.100000001490116
と表示されます。
2進法では 0.1(10進) = 0.0001100110011001・・・(2進) と無限小数になるため,コンピュータ上で正確に表せず,このような誤差が生じ得ます。