swydell
swydell

Reputation: 2022

How do I convert from a string to an integer in Visual Basic?

How do I convert from a string to an integer? Here's what I tried:

Price = CInt(Int(txtPrice.Text))

I took out the Int and I still got an exception.

Upvotes: 72

Views: 646861

Answers (8)

HackSlash
HackSlash

Reputation: 5811

If there might be invalid characters in the textbox it will throw an exception. The Val command pulls numbers and strips invalid characters. It returns a double. So you want to convert the result of Val to whatever type you need.

Price = Convert.toInt32(Val(txtPrice.Text))

This will return 0 instead of throwing an error on invalid input. If that isn't desired you should be checking that the input is valid before you convert.

Upvotes: 0

Use Val(txtPrice.text)

I would also allow only number and the dot char by inserting some validation code in the key press event of the price text box.

Upvotes: 1

Moola TK
Moola TK

Reputation: 51

Please try this, VB.NET 2010:

  1. Integer.TryParse(txtPrice.Text, decPrice)
  2. decPrice = Convert.ToInt32(txtPrice.Text)

From Mola Tshepo Kingsley (WWW.TUT.AC.ZA)

Upvotes: 5

Majosty D
Majosty D

Reputation: 67

You can try these:

Dim valueStr as String = "10"

Dim valueIntConverted as Integer = CInt(valueStr)

Another example:

Dim newValueConverted as Integer = Val("100")

Upvotes: 2

Srinivasan
Srinivasan

Reputation: 139

You can use the following to convert string to int:

  • CInt(String) for ints
  • CDec(String) for decimals

For details refer to Type Conversion Functions (Visual Basic).

Upvotes: 13

Chad Schouggins
Chad Schouggins

Reputation: 3521

Use

Convert.toInt32(txtPrice.Text)

This is assuming VB.NET.

Judging by the name "txtPrice", you really don't want an Integer but a Decimal. So instead use:

Convert.toDecimal(txtPrice.Text)

If this is the case, be sure whatever you assign this to is Decimal not an Integer.

Upvotes: 126

zari
zari

Reputation: 1739

You can try it:

Dim Price As Integer 
Int32.TryParse(txtPrice.Text, Price) 

Upvotes: 28

stuartdotnet
stuartdotnet

Reputation: 3034

Convert.ToIntXX doesn't like being passed strings of decimals.

To be safe use

Convert.ToInt32(Convert.ToDecimal(txtPrice.Text))

Upvotes: 3

Related Questions