Visual Basic Language Reference
Data Type Summary (Visual Basic)
See Also 

The following table shows the Visual Basic data types, their supporting common language runtime types, their nominal storage allocation, and their value ranges.

Visual Basic type Common language runtime type structure Nominal storage allocation Value range
1. Boolean

Boolean

Depends on implementing platform

True or False

2. Byte

Byte

1 byte

0 through 255 (unsigned)

3. Char (single character)

Char

2 bytes

0 through 65535 (unsigned)

4. Date

DateTime

8 bytes

0:00:00 (midnight) on January 1, 0001 through 11:59:59 PM on December 31, 9999

5. Decimal

Decimal

16 bytes

0 through +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9...E+28) ? with no decimal point; 0 through +/-7.9228162514264337593543950335 with 28 places to the right of the decimal;

smallest nonzero number is +/-0.0000000000000000000000000001 (+/-1E-28) ?

6. Double (double-precision floating-point)

Double

8 bytes

-1.79769313486231570E+308 through -4.94065645841246544E-324 ? for negative values;

4.94065645841246544E-324 through 1.79769313486231570E+308 ? for positive values

7. Integer

Int32

4 bytes

-2,147,483,648 through 2,147,483,647 (signed)

8. Long (long integer)

Int64

8 bytes

-9,223,372,036,854,775,808 through 9,223,372,036,854,775,807 (9.2...E+18 ?) (signed)

9. Object

Object (class)

4 bytes on 32-bit platform

8 bytes on 64-bit platform

Any type can be stored in a variable of type Object

10. SByte

SByte

1 byte

-128 through 127 (signed)

11. Short (short integer)

Int16

2 bytes

-32,768 through 32,767 (signed)

12. Single (single-precision floating-point)

Single

4 bytes

-3.4028235E+38 through -1.401298E-45 ? for negative values;

1.401298E-45 through 3.4028235E+38 ? for positive values

13. String (variable-length)

String (class)

Depends on implementing platform

0 to approximately 2 billion Unicode characters

14. UInteger

UInt32

4 bytes

0 through 4,294,967,295 (unsigned)

15. ULong

UInt64

8 bytes

0 through 18,446,744,073,709,551,615 (1.8...E+19 ?) (unsigned)

16. User-Defined (structure)

(inherits from ValueType)

Depends on implementing platform

Each member of the structure has a range determined by its data type and independent of the ranges of the other members

17. UShort

UInt16

2 bytes

0 through 65,535 (unsigned)

? In scientific notation, "E" refers to a power of 10. So 3.56E+2 signifies 3.56 x 102 or 356, and 3.56E-2 signifies 3.56 / 102 or 0.0356.