Sign in to follow this  

[VB] Uncertain why this isn't working

This topic is 1651 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey,

 

I've just written this code, unfortunately the 'price' & 'price2' variables always returns as 0 when I print it, and I'm really confused why as it should, also instead of it adding the value to price during the if statements, it just goes straight to the last Else which prints out that I should enter a correct numeric value


        Dim theHeight As String = heightEntry.Text
        Dim theWidth As String = widthEntry.Text
        Dim price As Integer
        Dim price2 As Integer

        If IsNumeric(theWidth) >= 1800 Then
            price = 1444

        ElseIf IsNumeric(theWidth) >= 1801 And IsNumeric(theWidth) <= 2000 Then
            price = 1458

        ElseIf IsNumeric(theWidth) >= 2001 And IsNumeric(theWidth) <= 2200 Then
            price = 1479

        ElseIf IsNumeric(theWidth) >= 2201 And IsNumeric(theWidth) <= 2400 Then
            price = 1580

        ElseIf IsNumeric(theWidth) >= 2401 And IsNumeric(theWidth) <= 2600 Then
            price = 1606

        ElseIf IsNumeric(theWidth) >= 2601 And IsNumeric(theWidth) <= 2800 Then
            price = 1630

        ElseIf IsNumeric(theWidth) >= 2801 And IsNumeric(theWidth) <= 3000 Then
            price = 2185

        ElseIf IsNumeric(theWidth) >= 3001 And IsNumeric(theWidth) <= 3200 Then
            price = 2204

        ElseIf IsNumeric(theWidth) >= 3201 And IsNumeric(theWidth) <= 3400 Then
            price = 2259
        Else
            Output("Please Enter Numbers Between 1800 to 3400")
        End If

        If IsNumeric(theHeight) > 2100 Then
            price2 = price * 1.05
        Else
            price2 = price
        End If

        Output("Value is: " + price2.ToString)

    End Sub

Any help would be greatly appreciated, thanks!

Share this post


Link to post
Share on other sites

IsNumeric() doesn't convert its argument to a number, it only tells you if the argument is a valid number or not. Depending on exactly which version of VB you're using and what you want to convert the argument to then you might want to try CInt(), CLng(), CDbl() or similar functions instead.

Share this post


Link to post
Share on other sites

Can't you just use theWidth as a number anyway in VB? (as long as IsNumeric is true)

 

So

 

If IsNumeric(theWidth) Then

' do all that stuff you already doing, but you don't need IsNumeric any more

Else

    Output("Please Enter Numbers Between 1800 to 3400")

Endif

 

Otherwise I think you can do

 

Dim price as Integer = theWidth

 

as well?

 

(Disclaimer: I hate VB and the syntax sucks so I could be wrong)

 

EDIT: And I haven't tried any .NET VB stuff, last time I did VB was VB6, so it may have changed completely now!

Edited by Paradigm Shifter

Share this post


Link to post
Share on other sites

This topic is 1651 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this