Specifications

Section 9. CR1000 Programming
9-24
EXAMPLE 9.13-2. CRBASIC Code: Conversion of FLOAT / LONG to Boolean
Public Fa AS FLOAT
Public Fb AS FLOAT
Public L AS LONG
Public Ba AS Boolean
Public Bb AS Boolean
Public Bc AS Boolean
BeginProg
Fa = 0
Fb = 0.125
L = 126
Ba = Fa ‘This will set Ba = False (0)
Bb = Fb ‘This will Set Bb = True (-1)
Bc = L ‘This will Set Bc = True (-1)
EndProg
9.13.3.2 FLOAT from LONG or Boolean
When a LONG or Boolean is converted to FLOAT, the integer value is loaded
into the FLOAT. Booleans will be converted to -1 or 0 depending on whether
the value is non-zero or zero. LONG integers greater than 24 bits (16,777,215;
the size of the mantissa for a FLOAT) will lose resolution when converted to
FLOAT.
9.13.3.3 LONG from FLOAT or Boolean
Booleans will be converted to -1 or 0. When a FLOAT is converted to a
LONG, it is truncated. This conversion is the same as the INT function
(Section 10.6.4 Arithmetic Functions). The conversion is to an integer equal to
or
less than the value of the float (e.g., 4.6 becomes 4, -4.6 becomes -5).
If a FLOAT is greater than the largest allowable LONG (+2,147,483,647), the
integer is set to the maximum. If a FLOAT is less than the smallest allowable
LONG (-2,147,483,648), the integer is set to the minimum.
9.13.3.4 Integers in Expressions
LONGs are evaluated in expressions as integers when possible. EXAMPLE
9.13-3 illustrates evaluation of integers as LONGs and FLOATs.
EXAMPLE 9.13-3. CRBASIC Code: Evaluation of Integers
Public X, I AS Long
BeginProg
I = 126
X = (I+3) * 3.4
‘I+3 is evaluated as an integer,
‘then converted to FLOAT before
‘it is multiplied by 3.4
EndProg