By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,866 Members | 1,704 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,866 IT Pros & Developers. It's quick & easy.

Convert string to Numeric in VB.net 2003 ?

P: n/a
How do I convert string to numeric in VB.NET 2003 ?

Example convert P50001 to 50001 or 50001P to 50001 but if P is in middle
then not convert.

Regards,

Tee
Sep 29 '08 #1
Share this Question
Share on Google+
9 Replies


P: n/a
On Sep 29, 11:03*am, "engteng" <pass...@gmail.comwrote:
How do I convert string to numeric in VB.NET 2003 ?

Example convert P50001 to 50001 or 50001P to 50001 but if P is in middle
then not convert.

Regards,

Tee
In my idea, first you should remove P by taking only numeric part
using substring function, then you're ready to cast it to Integer or
Long using CInt or CLng depending on the range as follows:

' For P50001
Dim num1 As String = "P50001"
num1 = num1.Substring(1)
'Proove that 50001 is now an Int32
MsgBox(num1 & " is " & _
CInt(num1).GetType.Name.ToString)

' For 50001P
Dim num2 As String = "50001P"
num2 = num2.Substring(0, 5)
MsgBox(num2 & " is " & _
CInt(num2).GetType.Name.ToString)

'.........

Hope this helps,

Onur Güzel
Sep 29 '08 #2

P: n/a
Hello Tee,

if the "P" always is the single first or last character you could
write something like:

___________________________________________
dim strX as string
dim dblValue as Short

strX="P50001"
if LCase(Left(strX,1))="p" then
dblvalue = val(mid(strX,2))
elseif LCase(Right(strX,1))="p" then
dblvalue = val(left(strX,Len(strX)-1))
else
dblvalue = 0
end if
___________________________________________

If the character may vary you could change the code into something
like:

___________________________________________
if Not IsNumeric(LCase(Left(strX,1))) then
___________________________________________
(I didn't check it with the debugger so I hope it's free of errors)

Good luck,
Lorenz
Sep 29 '08 #3

P: n/a
Hi Lorenz,

Generally it is better to use a string comparison method than convert
strings to lower case or upper case for the purpose of a case insensitive
match, eg:

If s.StartsWith("P", StringComparison.CurrentCultureIgnoreCase) Then
s = s.Substring(1)
ElseIf s.EndsWith("P", StringComparison.CurrentCultureIgnoreCase) Then
s = s.Substring(0, s.Length - 1)
End If

value = CInt(s)


"Lorenz Hölscher" <in******@software-dozent.dewrote in message
news:e4**********************************@p25g2000 hsf.googlegroups.com...
Hello Tee,

if the "P" always is the single first or last character you could
write something like:

___________________________________________
dim strX as string
dim dblValue as Short

strX="P50001"
if LCase(Left(strX,1))="p" then
dblvalue = val(mid(strX,2))
elseif LCase(Right(strX,1))="p" then
dblvalue = val(left(strX,Len(strX)-1))
else
dblvalue = 0
end if
___________________________________________

If the character may vary you could change the code into something
like:

___________________________________________
if Not IsNumeric(LCase(Left(strX,1))) then
___________________________________________
(I didn't check it with the debugger so I hope it's free of errors)

Good luck,
Lorenz
Sep 29 '08 #4

P: n/a
Hi Tee,

You can try:

value = CInt( s.Trim("P"c, "p"c))
"engteng" <pa*****@gmail.comwrote in message
news:eH**************@TK2MSFTNGP03.phx.gbl...
How do I convert string to numeric in VB.NET 2003 ?

Example convert P50001 to 50001 or 50001P to 50001 but if P is in middle
then not convert.

Regards,

Tee

Sep 29 '08 #5

P: n/a
Hi Bill,

you're right for sure. As you might have seen I usually work with
Office-VBA with no SubString-Method und its IgnoreCase-Parameter until
now...

bye, Lorenz
Sep 29 '08 #6

P: n/a
Tee,

dim Example as string = "P50001p".tolower.Trim("p")

http://msdn.microsoft.com/en-us/library/d4tt83f9.aspx

Cor

"engteng" <pa*****@gmail.comschreef in bericht
news:eH**************@TK2MSFTNGP03.phx.gbl...
How do I convert string to numeric in VB.NET 2003 ?

Example convert P50001 to 50001 or 50001P to 50001 but if P is in middle
then not convert.

Regards,

Tee


Sep 29 '08 #7

P: n/a
On Sep 29, 2:06*pm, "Cor Ligthert [MVP]" <notmyfirstn...@planet.nl>
wrote:
Tee,

dim Example as string = "P50001p".tolower.Trim("p")

http://msdn.microsoft.com/en-us/library/d4tt83f9.aspx

Cor

"engteng" <pass...@gmail.comschreef in berichtnews:eH**************@TK2MSFTNGP03.phx.gbl. ..
How do I convert string to numeric in VB.NET 2003 ?
Example convert P50001 to 50001 or 50001P to 50001 but if P is in middle
then not convert.
Regards,
Tee- Hide quoted text -

- Show quoted text -
Why are you trying to lower P? OP just wants to convert "P50001 to
50001" or "50001P to 50001". Plus, trimming 'P' is not enough alone,
also the string type must be converted to a numeric type such as
Integer for further usage. In this case, it's proper to take the part
of the string value that can be casted to Integer using CInt or
Convert.ToInt32 etc. (without 'P').

Thanks,

Onur G.
Sep 29 '08 #8

P: n/a
Onur,

The first I agree, it is converting the P in the middle as well, to lower.

But how can you convert a string with a P in the middle to a what you call a
numeric?

That can only by those who call a string with all numeric characters a
numeric, and therefore I did not extend the code for that part.

(By the way, I have tried the code, with that what you did, you can do the
same, as you then set a simple Cint before it, you can use it as any real
numeric value instead of a string, however this can in my idea never been
done in the way the Op was asking).

Cor

"kimiraikkonen" <ki*************@gmail.comschreef in bericht
news:10**********************************@x41g2000 hsb.googlegroups.com...
On Sep 29, 2:06 pm, "Cor Ligthert [MVP]" <notmyfirstn...@planet.nl>
wrote:
Tee,

dim Example as string = "P50001p".tolower.Trim("p")

http://msdn.microsoft.com/en-us/library/d4tt83f9.aspx

Cor

"engteng" <pass...@gmail.comschreef in
berichtnews:eH**************@TK2MSFTNGP03.phx.gbl. ..
How do I convert string to numeric in VB.NET 2003 ?
Example convert P50001 to 50001 or 50001P to 50001 but if P is in middle
then not convert.
Regards,
Tee- Hide quoted text -

- Show quoted text -
Why are you trying to lower P? OP just wants to convert "P50001 to
50001" or "50001P to 50001". Plus, trimming 'P' is not enough alone,
also the string type must be converted to a numeric type such as
Integer for further usage. In this case, it's proper to take the part
of the string value that can be casted to Integer using CInt or
Convert.ToInt32 etc. (without 'P').

Thanks,

Onur G.

Sep 30 '08 #9

P: n/a
How about using regular expressions
Dim SomeValue As String = "P500P01"
Dim SomeNumber As Integer = 0
Dim objRegEx As New Regex("[p]")
SomeNumber = CInt(objRegEx.Replace(SomeValue.ToLower, ""))

"engteng" <pa*****@gmail.comwrote in message
news:eH**************@TK2MSFTNGP03.phx.gbl...
How do I convert string to numeric in VB.NET 2003 ?

Example convert P50001 to 50001 or 50001P to 50001 but if P is in middle
then not convert.

Regards,

Tee


Sep 30 '08 #10

This discussion thread is closed

Replies have been disabled for this discussion.