Table 4-1: Data types, ranges and resolutions
Data type
Description
Range
Resolution
Where used
Float
IEEE four-byte
floating point
+/–1.8 *10^–38 to
+/–3.4 *10^38
24 bits
(about 7 digits)
variables
Long
four-byte
signed integer
–2,147,483,648 to
+2,147,483,647
1 bit
variables, output
Boolean
four-byte
signed integer
–1, 0
True (–1) or
False ( 0)
variables,
sample output
String
ASCII String
variables,
sample output
IEEE4
IEEE four-byte
floating point
+/–1.8 *10^–38 to
+/–3.4 *10^38
24 bits
(about 7 digits)
internal calculations,
output
IEEE8
IEEE eight-byte
floating point
+/–2.23 *10^–308 to
+/–1.8 *10^308
53 bits
(about 16 digits)
internal calculations,
output
FP2
Campbell Scientific
two-byte floating point
–7999 to +7999
13 bits
(about 4 digits)
output
NSEC
eight-byte time stamp
nanoseconds
variables, output
4.4.1 Variables
In CRBasic, the declaration of variables (via the
DIM
or the
PUBLIC
statement) allows an
optional type descriptor
As
that specifies the data type. The data types are
Float
,
Long
,
Boolean
, and
String
. The default type is
Float
.
Example variables declared with optional data types
Public
PTemp
As Float
, Batt_volt
Public
Counter
As Long
Public
SiteName
As String
* 24
As Float
specifies the default data type. If no data type is explicitly specified with the
As
statement, then
Float
is assumed. Measurement variables are stored and calculations are
performed internally in IEEE 4 byte floating point with some operations calculated in double
precision. A good rule of thumb is that resolution will be better than 1 in the seventh digit.
As Long
specifies the variable as a 32 bit integer. There are two possible reasons a user would
do this: (1) speed, since the CR6 Operating System can do math on integers faster than with
Float
s, and (2) resolution, since the
Long
has 31 bits compared to the 24 bits in the
Float
. A
good application of the
As Long
declaration is a counter that is expected to get very large.
4. Working with data
51