様々な型同士の演算による結果を一覧にしてみました。
[いくつかの条件]
式は「A n B」としています。
A、B共に1としています。理由は桁あふれを防ぐため、結果を分かりやすくするためです。
演算子であるnには、よく使われる「+、-、*、/」のみとしています。
型もおもにつかわれると思われるものを対象とし、VB6ではByte、Integer、Long、Single、Double、Currency型、VB2005ではByte、Short、Integer、Long、Single、Double、Decimal型を対象としています。
自分のため、そしてまだ必要であろう人達のために、VB6とVB2005の結果を載せます。
縦をA、横をBとしています。
[VB6]
|
|
Byte |
Integer |
Long |
Single |
Double |
Currency |
| 加算 |
Byte |
Byte |
Integer |
Long |
Single |
Double |
Currency |
|
Integer |
Integer |
Integer |
Long |
Single |
Double |
Currency |
|
Long |
Long |
Long |
Long |
Double |
Double |
Currency |
|
Single |
Single |
Single |
Double |
Single |
Double |
Currency |
|
Double |
Double |
Double |
Double |
Double |
Double |
Currency |
|
Currency |
Currency |
Currency |
Currency |
Currency |
Currency |
Currency |
| 減算 |
Byte |
Byte |
Integer |
Long |
Single |
Double |
Currency |
|
Integer |
Integer |
Integer |
Long |
Single |
Double |
Currency |
|
Long |
Long |
Long |
Long |
Double |
Double |
Currency |
|
Single |
Single |
Single |
Double |
Single |
Double |
Currency |
|
Double |
Double |
Double |
Double |
Double |
Double |
Currency |
|
Currency |
Currency |
Currency |
Currency |
Currency |
Currency |
Currency |
| 乗算 |
Byte |
Byte |
Integer |
Long |
Single |
Double |
Currency |
|
Integer |
Integer |
Integer |
Long |
Single |
Double |
Currency |
|
Long |
Long |
Long |
Long |
Double |
Double |
Currency |
|
Single |
Single |
Single |
Double |
Single |
Double |
Double |
|
Double |
Double |
Double |
Double |
Double |
Double |
Double |
|
Currency |
Currency |
Currency |
Currency |
Double |
Double |
Currency |
| 除算 |
Byte |
Double |
Double |
Double |
Single |
Double |
Double |
|
Integer |
Double |
Double |
Double |
Single |
Double |
Double |
|
Long |
Double |
Double |
Double |
Double |
Double |
Double |
|
Single |
Single |
Single |
Double |
Single |
Double |
Double |
|
Double |
Double |
Double |
Double |
Double |
Double |
Double |
|
Currency |
Double |
Double |
Double |
Double |
Double |
Double |
[VB2005]
|
|
Byte |
Short |
Integer |
Long |
Single |
Double |
Decimal |
| 加算 |
Byte |
Byte |
Short |
Integer |
Long |
Single |
Double |
Decimal |
|
Short |
Short |
Short |
Integer |
Long |
Single |
Double |
Decimal |
|
Integer |
Integer |
Integer |
Integer |
Long |
Single |
Double |
Decimal |
|
Long |
Long |
Long |
Long |
Long |
Single |
Double |
Decimal |
|
Single |
Single |
Single |
Single |
Single |
Single |
Double |
Single |
|
Double |
Double |
Double |
Double |
Double |
Double |
Double |
Double |
|
Decimal |
Decimal |
Decimal |
Decimal |
Decimal |
Single |
Double |
Decimal |
| 減算 |
Byte |
Byte |
Short |
Integer |
Long |
Single |
Double |
Decimal |
|
Short |
Short |
Short |
Integer |
Long |
Single |
Double |
Decimal |
|
Integer |
Integer |
Integer |
Integer |
Long |
Single |
Double |
Decimal |
|
Long |
Long |
Long |
Long |
Long |
Single |
Double |
Decimal |
|
Single |
Single |
Single |
Single |
Single |
Single |
Double |
Single |
|
Double |
Double |
Double |
Double |
Double |
Double |
Double |
Double |
|
Decimal |
Decimal |
Decimal |
Decimal |
Decimal |
Single |
Double |
Decimal |
| 乗算 |
Byte |
Byte |
Short |
Integer |
Long |
Single |
Double |
Decimal |
|
Short |
Short |
Short |
Integer |
Long |
Single |
Double |
Decimal |
|
Integer |
Integer |
Integer |
Integer |
Long |
Single |
Double |
Decimal |
|
Long |
Long |
Long |
Long |
Long |
Single |
Double |
Decimal |
|
Single |
Single |
Single |
Single |
Single |
Single |
Double |
Single |
|
Double |
Double |
Double |
Double |
Double |
Double |
Double |
Double |
|
Decimal |
Decimal |
Decimal |
Decimal |
Decimal |
Single |
Double |
Decimal |
| 除算 |
Byte |
Double |
Double |
Double |
Double |
Single |
Double |
Decimal |
|
Short |
Double |
Double |
Double |
Double |
Single |
Double |
Decimal |
|
Integer |
Double |
Double |
Double |
Double |
Single |
Double |
Decimal |
|
Long |
Double |
Double |
Double |
Double |
Single |
Double |
Decimal |
|
Single |
Single |
Single |
Single |
Single |
Single |
Double |
Single |
|
Double |
Double |
Double |
Double |
Double |
Double |
Double |
Double |
|
Decimal |
Decimal |
Decimal |
Decimal |
Decimal |
Single |
Double |
Decimal |
全ての演算で上記の結果が得られるとは限りません。
桁あふれ等が起きた場合は上記と異なる結果になると思います。
以下にMSDNへのリンクも張っておきますので、合わせてご覧ください。
[VB]演算子の結果のデータ型
http://msdn.microsoft.com/ja-jp/library/ms235255.aspx
+演算子
http://msdn.microsoft.com/ja-jp/library/9c5t70w2.aspx
-演算子
http://msdn.microsoft.com/ja-jp/library/fh10hha2.aspx
*演算子
http://msdn.microsoft.com/ja-jp/library/583dwz2k.aspx
/演算子
http://msdn.microsoft.com/ja-jp/library/25bswc76.aspx