integer literal
Integer literals are series of decimal digits without decimal point or scientific exponent.  All but huge integers (more than 19 digits) can be stored in one of the integer data types SBYTE to GIANT.

Values from -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 can be represented in at least one of the integer formats.  Numeric literals are stored in the smallest type that can hold them.  The ranges of the integer data types are as follows:

SBYTE      -128 to +127
UBYTE      0 to +255
SSHORT     -32,768 to +32,767
USHORT     0 to +65,535
SLONG      -2,147,483,648 to +2,147,483,647
ULONG      0 to +4,294,967,295
XLONG      Same as SLONG / GIANT on 32-bit / 64-bit systems
GIANT      -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807

decimal literal
Decimal literals are series of decimal digits with a decimal point, but no scientific exponent.  Integer data types cannot store the fractional part of numbers, so decimal literals become one of the two floating point data types, SINGLE or DOUBLE .

Positive or negative numbers with exponents larger than about 1038 or smaller than about 10-38 cannot be held in SINGLE, so they are typed DOUBLE .

Numbers that are more precisely represented in DOUBLE than SINGLE are typed DOUBLE . Numbers with more than 7 significant decimal digits can always be represented more precisely in DOUBLE, as can many shorter numbers.  For example, .1 is typed DOUBLE because floating point representations of .1 are binary continuing fractions (like 1/3 in decimal), and DOUBLE stores more of the fraction.

Decimal literals can be explicitly typed SINGLE or DOUBLE appending a type-suffix character, as in .100! or .100#.

scientific literal
Scientific literals are decimal digits, with or without a decimal point, followed by a scientific exponent.  The format of a valid scientific exponent is {d|e|D|E}[+/-]XXX} where XXX is 1 to 3 decimal digits.  e and E exponent specifiers identify numbers as SINGLE , while d and D specify DOUBLE.

-3e-2 is -0.03 in SINGLE, while 88.110d3 is 88110 in DOUBLE.  The range of SINGLE and DOUBLE data types are:

SINGLE   < 0 -3.402823e+38 to -1.175494e-38
SINGLE   = 0 0
SINGLE   > 0 +1.175494e-38 to +3.402823e+38

DOUBLE   < 0 -1.79769313486232d+308 to -2.22507385850719d-308
DOUBLE   = 0 0
DOUBLE   > 0 +2.22507385850719d-308 to +1.79769313486232d+308