ARMbasic can evaluate an
expression as either an integer, string or floating point. The type of
evaluation that is performed is determined by the first
variable, constant or function in a statement when scanning from left to
right. It is simple scan of left to right and () are ignored
for determining the type of evaluation
that will occur.
DIM SINGLEtype as SINGLE
SINGLEtype = 1/2 ' results in 0.500000
INTEGERtype = 1/2 ' results in 0
functionCall ( 0.123 + INTEGERtype) ' passes a SINGLE type to functionCall
functionCall ( 123 + SINGLEtype ) ' passes an INTEGER to functionCall
if 1 = SINGLEtype*2 then print "true" ' will not print true, as the expression is evaluated as integers
if 1.0 = SINGLEtype*2 then print "true" ' will print true as 1.0 is a floating point constant and the expression is evaluated as float