 # Lesson 8 Data Types

In our daily life, we have to deal with all kinds of information and data. For example, we need to deal with data like names, money, phone number, addresses, date, stock quotes and more.

Similarly, in Visual Basic 2022, we have to deal with all sorts of data, some of them can be mathematically calculated while some are in the form of text or other non-numeric forms. In Visual Basic 2022, data can be stored as variables, constants or arrays. The values of data stored as variables always change, just like the contents of a mailbox or the storage bin while the value of a constant remains the same throughout.

### 8.1 Data Types

Visual Basic 2022 classifies information into two major data types,  the numeric data types, and the non-numeric data type

#### 8.1.1 Numeric Data Types

In Visual Basic 2022, numeric data types are types of data comprises numbers that can be calculated using various standard arithmetic operators. Examples of numeric data types are examination marks, height, body weight, the number of students in a class, share values, the price of goods, monthly bills, fees, bus fares and more. In Visual Basic 2017, numeric data are classified into seven types based on the range of values they can store. Numeric data that involve round figures are classified as Integer or Long integer. Data that require high precision calculation are classified as single and double precision data types, they are also called floating point numbers. Numeric data that involve money are classified as currency data types. Lastly, data that require more precision and involve many decimal points are classified as decimal data types. These data types are summarized in Table 8.1

Table 8.1: Numeric Data Types
Type Storage Range of Values
Byte  1 byte   0 to 255
Integer  2 bytes   -32,768 to 32,767
Long  4 bytes  -2,147,483,648 to 2,147,483,648
Single  4 bytes -3.402823E+38 to -1.401298E-45 for negative values 1.401298E-45 to 3.402823E+38 for positive values.
Double  8 bytes -1.79769313486232e+308 to -4.94065645841247E-324 for negative values 4.94065645841247E-324 to 1.79769313486232e+308 for positive values.
Currency  8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807
Decimal  12 bytes +/- 79,228,162,514,264,337,593,543,950,335 if no decimal is use +/- 7.9228162514264337593543950335 (28 decimal places).

#### 8.1.2 Non-numeric Data Types

In Visual Basic 2022, non-numeric data types are data that cannot be calculated using standard arithmetic operators. The non-numeric data comprises text or string data types, the Date data types, the Boolean data types that store only two values (true or false), Object data type and Variant data type. They are summarized in Table 8.2

Table 8.2: Non-numeric Data Types
Type Storage Range
String(fixed length) Length of string 1 to 65,400 characters
String(variable length) Length + 10 bytes 0 to 2 billion characters
Date  8 bytes January 1, 100 to December 31, 9999
Boolean  2 bytes True or False
Object  4 bytes Any embedded object
Variant(numeric)  16 bytes Any value as large as Double
Variant(text) Length+22 bytes Same as variable-length string

#### 8.1.3 Suffixes for Literals

Literals are values that you assign to data. In some cases, we need to add a suffix behind a literal so that Visual Basic 2022 can handle the calculations more accurately. For example, we can use num=1.3089! for a single precision data type, num=1.3089# for a double precision data type, num=130890& to indicate long integer data type and num=1.3089@ to indicate currency data type. The suffixes are summarized in Table 8.3.

Table 8.3
Suffix Data Type
& Long
! Single
# Double
@ Currency

In addition, we need to enclose string literals within two quotations and date and time literals within two # sign. Strings can contain any characters, including numbers. The following are few examples:

```memberName="Turban, John."
TelNumber="1800-900-888-777"
LastDay=#31-Dec-00#
ExpTime=#12:00 am#
```

### 8.2 Performaing Operations on Data

When VB2022 performs operation using arithmeric operators, it need to understand the data types. It can perform mathematical operations on data of numeric nature but not a mix of numeric data and non-numeric data.

For example, we can add two numbers but not a number and a text or phrase. Let's examine the following examples. Start a project and add a button to the default form, name the button as BtnCompute and change its text to Compute, as shown in Figure 8.1.

In this example, click on the Compute button and enter the following code:

```Private Sub BtnCompute_Click(sender As Object, e As EventArgs) Handles BtnCompute.Click
MsgBox("The Sum is " & 10 + 20.5, 0, "Data Types")
End Sub
```

Running the program and click on the Compute button produces the following output:

#### 8.2.2 Adding a number and a string

In this example, click on the Compute button and enter the following code:

```Private Sub BtnCompute_Click(sender As Object, e As EventArgs) Handles BtnCompute.Click
MsgBox(10 + "John")
End Sub
```

Running the program and click on the Compute button produces the error message as shown in Figure 8.3, because numeric data and string cannot add:

#### 8.2.3 Concatenates two strings

In this example, click on the Compute button and enter the following code:

```Private Sub BtnCompute_Click(sender As Object, e As EventArgs) Handles BtnCompute.Click
MsgBox("George" + " John")
End Sub
```

Running the program and click on the Compute button produces output as shown in Figure 8.4, because the plus operator does not add the strings, but concatenates them.

` MsgBox("George" & " John")`