Converting Numbers

Before trying to convert a string to a number it is a good idea to always make sure that the value is a numerical value.
The ISNUMERIC function will return True or False depending if the value can be evaluated as a number.

String to Integer

The CINT function converts a String to an Integer data type.

`Dim sMyString As String sMyString = "200" Dim iMyInteger As Integer If (IsNumeric(sMyString) = True) Then    iMyInteger = CInt(sMyString) End If `

String to Long

The CLNG function converts a String to a Long data type.

`Dim sMyString As String sMyString = "200" Dim lMyLong As Long lMyLong = CLng(sMyString) `

String to Single

The CSNG function converts a String to a Single data type.

`Dim sMyString As String sMyString = "34.5" Dim sngMySingle As Single sngMySingle = CSng(sMyString) `

String to Double

The CDBL function converts a String to a Double data type.

`Dim sMyString As String sMyString = "34.5" Dim dbMyDouble As Double dbMyDouble = CDbl(sMyString) `

String to Decimal

The CDEC function converts a String to a Decimal data type.

`Dim sMyString As String sMyString = "34.5" Dim dcMyDecimal As Variant dcMyDecimal = CDec(sMyString) `

Decimal to Integer

When you convert a Decimal value to a Long integer value it gets rounded to the nearest integer value.
Digits less than 5 are rounded down
Digits greater than 5 are rounded up
If the digit is 5, then it looks at the digit immediately before the decimal place
1) if its even, its rounded down
2) if its odd, its rounded up
3) if there is no digit, its rounded down
CLng(8.5) = 8 (because 8 is even)
CLng(9.5) - 10 (because 9 is odd)

`Dim vdDecimal As Variant vdMyDecimal = 34.5 Dim iMyInteger iMyInteger = CInt(vdMyDecimal) `

Number to String

The CSTR function converts a Number to a String data type.

`Dim sMyString As String Dim lNumber As Long lNumber = 400 sMyString = CStr(lNumber) Debug.Print "My String is " + sMyString `