Arithmetic operators in LotusScript®

When an arithmetic expression contains a NULL operand, the expression as a whole evaluates to NULL.

  • Exponentiation raises a number to a power.
  • Negation returns a number's negative value.
  • Multiplication multiplies two numbers.
  • Division divides a number and returns a floating-point number.
  • Integer division rounds numbers to integers before dividing them.
  • Modulo divides numbers and returns the remainder.
  • Addition finds the sum of two numbers.
  • Subtraction finds the difference between two numbers.

When an arithmetic expression contains a NULL operand, the expression as a whole evaluates to NULL.

For example:

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

Only variables of type Variant may be assigned a value of NULL without causing an error.

This example is valid:

varV = NULL
varV = varV * 5

This example is not valid:

anInt% = anInt% * varV
' Generate an error.

When the result of an arithmetic operation is too large for the type of variable to which it is assigned, LotusScript® automatically converts the data type, if possible, or an overflow error results.

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.

LotusScript® also rounds numbers when performing floating point division on integer operands:

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

For more information on data type conversion and rounding, see "Automatic data type conversion" in "Data Types, Constants, and Variables."