SAK 図書館
VB 基礎編 (その一) 数値計算、変数タイプ、演算子 dim、enum、vbCrLf
■VB の各種資料について
VB 関連の各種資料は、Visual Basic 6.0、(VB6.0) を基本に書いています。
VB5.0 からの移行注意事項も一部記載しています。
■数値計算
電卓と基本的に違うのが、パソ系は数値演算を 2 進演算でやると言うことで
す。10 進演算、BCD 演算などと明記されてない場合は、すべて 2 進演算が使
用されています。
この場合、整数の演算においてはなんらの問題も出ないのですが、小数点を含
む演算において微妙な誤差が出て来ます。
(例: 0.01 を単精度変数に 10 回足すと、9.999999E-02 となって、0.1 には
ならない。9.999999E-02 = 0.09999999)
【コツ1】
小数点同士の計算は行わない。
一度整数にした後、計算し、最後に少数に戻す。
但し、完全には回避できない場合があります。
dim a as long
dim b as long
dim c as double
dim i as integer
a = 0.01 * 100
b = 0
for i = 1 to 10
b = b + a
next
c = b / 100
【コツ2】
VB6 では、variant で 10 進数を保持できます。
cdec() をうまく利用すると、誤差のない数値計算が可能です。
■変数タイプ
integer 整数 (-32768 〜 32767) S9(04)
long 整数 (-2147483648 〜 2147483647) S9(09)
single 単精度 (-999999. 〜 999999.) S9(06).
double 倍精度 (-9999999999999999. 〜 9999999999999999.) S9(16).
【浮動小数点】single と double タイプは浮動少数点を持つ。
ここで気をつけるのは、double の有効 16 桁を全て整数で使
用した場合の小数点以下はないと言うこと。
小数点以下 4 桁の精度を確保しようとすると、整数部分は 12
桁以下でなければならない。
boolean (BOOL 値 true か false のみ記憶可能)
byte (1 バイト) X(01)
string 文字 (1 〜 32767 文字) X(??)
string *文字 (1 〜 32767 文字固定長) X(??)
【可変長文字変数】string は基本的に渡される文字の長さによって可変長の
長さを持つ。
dim a as string * 6
と長さを指定したときは、固定長文字変数となる。
currency 通貨型 (-922,337,203,685,477.5808 〜 922,337,203,685,477.5807)
【固定小数点】通貨型は、64 bits で記憶される整数部 15 桁、小数部 4 桁
固定の変数である。
■列挙型
enum youbi
sun = 0
mon = 1
tue = 2
wed = 3
thu = 4
fri = 5
sat = 6
end enum
■演算子
+ 加算
- 減算
* 掛け算
/ 割り算
\ 割り算(小数部切り捨て) 「a \ b = int (a / b)」
mod 余り
VB6 では、「\」による切り捨て、round() 関数は数学的でない。
int() で独自にコーディングした方が良い。
■エスケープシーケンス
chr(10) ラインフィード vbLf
chr(13) キャリッジリターン vbCr
chr(13) & chr(10) 改行 vbCrLf
chr(0) NULL 文字 vbNullString
msgbox "abc" & chr(10) & "def" のように使用する。
ファイル等のいわゆる改行(CRLF) は、chr(13) & chr(10) である。
chr(13) & chr(10) に等しい vbCrLf と言う予約語もある。
C 言語の NULL 文字を現すには chr(0) を使用する。
Windows API に NULL パラメタを送るときは、ポインタの NULL なので、
vbNullString を使用する。
■VB 基礎編資料
■VB 入門編資料
■VB ビジュアル編資料
■VB テクニック編資料