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 |
|
Depends on implementing platform |
True or False |
| 2. Byte |
|
1 byte |
0 through 255 (unsigned) |
| 3. Char (single character) |
|
2 bytes |
0 through 65535 (unsigned) |
| 4. Date |
|
8 bytes |
0:00:00 (midnight) on January 1, 0001 through 11:59:59 PM on December 31, 9999 |
| 5. 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) |
|
8 bytes |
-1.79769313486231570E+308 through -4.94065645841246544E-324 ? for negative values; 4.94065645841246544E-324 through 1.79769313486231570E+308 ? for positive values |
| 7. Integer |
|
4 bytes |
-2,147,483,648 through 2,147,483,647 (signed) |
| 8. Long (long integer) |
|
8 bytes |
-9,223,372,036,854,775,808 through 9,223,372,036,854,775,807 (9.2...E+18 ?) (signed) |
| 9. Object |
|
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 |
|
1 byte |
-128 through 127 (signed) |
| 11. Short (short integer) |
|
2 bytes |
-32,768 through 32,767 (signed) |
| 12. Single (single-precision floating-point) |
|
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) |
|
Depends on implementing platform |
0 to approximately 2 billion Unicode characters |
| 14. UInteger |
|
4 bytes |
0 through 4,294,967,295 (unsigned) |
| 15. ULong |
|
8 bytes |
0 through 18,446,744,073,709,551,615 (1.8...E+19 ?) (unsigned) |
| 16. User-Defined (structure) |
(inherits from |
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 |
|
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.