算術式に NULL のオペランドが含まれていると、式全体が NULL に評価されます。
算術式に NULL のオペランドが含まれていると、式全体が NULL に評価されます。
以下に例を示します。
Dim varV
Dim anInt%
varV = NULL
varV = varV ^ 2
' Test to see if varV is NULL.
Print IsNull (varV)
' Output: True
anInt% = 5
Print IsNull(varV * anInt%)
' Output: True
エラーにならずに NULL 値を代入できるのは、Variant 型の変数に対してだけです。
次は正しい例です。
varV = NULL
varV = varV * 5
次は正しくない例です。
anInt% = anInt% * varV
' Generate an error.
算術演算の結果が代入される変数の型に対して演算結果が大きすぎる場合は、可能な限りデータ型が自動的に変換されます。データ型の変換ができない場合、オーバーフローエラーが発生します。
Dim anInt As Integer
Dim aNumericV As Variant
aNumericV = 10000 ^ 10
Print aNumericV
' Output: 1E+40
Print TypeName(aNumericV)
' Output: DOUBLE
anInt% = 10000 ^ 10
' Generate an error.
整数オペランドに対して浮動小数点除算が実行される場合は、数値が丸められます。
aDouble# = 42.5
anInt% = 64
anInt% = anInt% / 7
Print anInt%
' Output: 9
' The Mod operator rounds its two operands to Integer
' expressions, divides the first Integer by the second,
' and returns the remainder.
Print aDouble# Mod anInt%
' Output: 6
データ型の変換と丸め処理の詳細については、「データ型、定数、変数」の「自動データ型変換」を参照してください。