Campbell Scientific CR800 and CR850 Measurement and Control Systems User Manual
Page 144

Section 7. Installation
144
CRBasic Example 20. 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
FLOAT from LONG or Boolean
When a LONG or Boolean is converted to FLOAT, the integer value is loaded
into the FLOAT. Booleans are converted to -1 or 0. LONG integers greater than
24 bits (16,777,215; the size of the mantissa for a FLOAT) will lose resolution
when converted to FLOAT.
LONG from FLOAT or Boolean
When converted to Long, Boolean is 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 (Arithmetic Functions
(p. 475)
). 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.
Integers in Expressions
LONGs are evaluated in expressions as integers when possible. CRBasic example
Evaluation of Integers
(p. 144)
illustrates evaluation of integers as LONGs and
FLOATs.
CRBasic Example 21. 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