Library tutorials & articles

Data Types

Data Types

As you may have noticed, VB supports several data types. These are what the main 'Types' that you can declare your variables as. For example:

Dim intCount As Integer

is an Integer. You always should tell Visual Basic what sort of data the variable will hold. This will make your code easier to use, and will also save memory. Different types of variables need different amounts of memory. You need to use the smallest amount of memory. For example, if you will need to store a number from 0 - 255 in a variable, you can save memory by declaring it as a Byte (1 byte) rather than as an Integer (2 bytes). This is not really very much memory, but if you are untidy with all your variables, your application will use much more memory than it has to.

The table below lists the various Data Types, what data they can store and how many bytes they use.

Data type

Storage size

Range

Byte

1 byte

0 to 255

Boolean

2 bytes

True or False

Integer

2 bytes

-32,768 to 32,767

Long (long integer)

4 bytes

-2,147,483,648 to 2,147,483,647

Single (single-precision floating-point)

4 bytes

-3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values

Double (double-precision floating-point)

8 bytes

-1.79769313486232E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values

Currency (scaled integer)

8 bytes

-922,337,203,685,477.5808 to 922,337,203,685,477.5807

Decimal

14 bytes

+/-79,228,162,514,264,337,593,543,950,335 with no decimal point; +/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest non-zero number is +/-0.0000000000000000000000000001

Date

8 bytes

January 1, 100 to December 31, 9999

Object

4 bytes

Any Object reference

String (variable-length)

10 bytes + string length

0 to approximately 2 billion

String (fixed-length)

Length of string

1 to approximately 65,400

Variant (with numbers)

16 bytes

Any numeric value up to the range of a Double

Variant (with characters)

22 bytes + string length

Same range as for variable-length String

Comments

  1. 25 Feb 2004 at 14:08

    i would be interested in a list of data-type-specific operators.  for example, in an if...then statement, what operator do i use to compare one string to another? what operator is used to multiply two numbers? etc.

  2. 30 Jan 2004 at 04:17

    I have heard that using the smallest datatype in a program does not necessarily save space in memory, as memory is optimised to work in blocks of a certain size, possibly VB Long.


    Is this correct, or is it best to use the smallest datatype that will safely hold the data required.


    One important piece of advice, which I can confirm from experience, is:


    Always use a large enough data type to allow for future growth.


    You might expect that a variable to hold sales figures would never need to contain more than 99 million, but allow for even more, as it may need to hold, for example,  a company-wide summary of sales for the past twenty years, and suddenly the program will crash if the data type is too small.

  3. 01 Jan 1999 at 00:00

    This thread is for discussions of Data Types.

Leave a comment

Sign in or Join us (it's free).

James Crowley James first started this website when learning Visual Basic back in 1999 whilst studying his GCSEs. The site grew steadily over the years while being run as a hobby - to a regular monthly audience ...
AddThis

Related discussion

Related podcasts

  • Christian Beauclair

    14 mai 2008 (�mission #0074) ::.Christian Beauclair: Stratégies de migration VB6 vers .NET Nous discutons avec Christian Beauclair des stratégies de migration VB6 vers .NET. Entre autres, nous discutons comment utiliser le "VB 6 Code Advisor" et le "Interop Forms Toolkit" pour ajouter la puiss...

We'd love to hear what you think! Submit ideas or give us feedback