Reputation: 2022
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
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
Reputation: 386
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
Reputation: 51
Please try this, VB.NET 2010:
Integer.TryParse(txtPrice.Text, decPrice)
decPrice = Convert.ToInt32(txtPrice.Text)
From Mola Tshepo Kingsley (WWW.TUT.AC.ZA)
Upvotes: 5
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
Reputation: 139
You can use the following to convert string to int:
For details refer to Type Conversion Functions (Visual Basic).
Upvotes: 13
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
Reputation: 1739
You can try it:
Dim Price As Integer
Int32.TryParse(txtPrice.Text, Price)
Upvotes: 28
Reputation: 3034
Convert.ToIntXX doesn't like being passed strings of decimals.
To be safe use
Convert.ToInt32(Convert.ToDecimal(txtPrice.Text))
Upvotes: 3