SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

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 テクニック編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK