2015-12-22 5 views
0
Dim price, dprice, total As Double 

    total = price + dprice 

    lstOutput.Items.Add("Cheese Cake : $ " & (FormatNumber(price, 2))) 
    lstOutput.Items.Add("Drink : $ " & (FormatNumber(dprice, 2))) 
    lstOutput.Items.Add("===================") 
    lstOutput.Items.Add("Total : " & (FormatNumber(total, 2))) 

End Sub 

Function GetCakePrice(price As Double) As Double 

    If chkChoco.Checked Then 
     price += 2.0 
    End If 
    If chkBerry.Checked Then 
     price += 2.5 
    End If 
    If chkBlack.Checked Then 
     price += 3.0 
    End If 
    GetCakePrice = price 
End Function 

Function GetDrinkPrice(dprice As Double) As Double 
    If radTea.Checked Then 
     dprice += 1.8 
    End If 
    If radCoffee.Checked Then 
     dprice += 2.0 
    End If 
    GetDrinkPrice = dprice 
End Function 

Теперь на дисплее отображается как торт с сыром, так и напиток: $ 0, несмотря на то, что их флажок установлен. попробовал возиться, пожалуйста, укажите мою ошибку.Функция всегда возвращает 0 значение

+0

Куда вы ссылаетесь на свои функции? –

+0

Используете ли вы отладчик? – Rob

+0

@BrianHooper im new для vb, что вы имеете в виду? –

ответ

0

Вы не хватает вызова функции вы объявляли, и отправляя им параметры, которые вам не нужны. Я предлагаю внести изменения в свой код следующим образом:

ПРИМЕЧАНИЕ. Я предполагаю, что первая часть кода является другим методом, поэтому я просто назову ее Method().

Sub Method() 
    Dim price, dprice, total As Double 

    price = GetCakePrice() 
    dprice = GetDrinkPrice() 

    total = price + dprice 

    lstOutput.Items.Add("Cheese Cake : $ " & (FormatNumber(price, 2))) 
    lstOutput.Items.Add("Drink : $ " & (FormatNumber(dprice, 2))) 
    lstOutput.Items.Add("===================") 
    lstOutput.Items.Add("Total : " & (FormatNumber(total, 2))) 
End Sub 

Function GetCakePrice() As Double 
    If chkChoco.Checked Then 
     price += 2.0 
    End If 
    If chkBerry.Checked Then 
     price += 2.5 
    End If 
    If chkBlack.Checked Then 
     price += 3.0 
    End If 
    GetCakePrice = price 
End Function 

Function GetDrinkPrice() As Double 
    If radTea.Checked Then 
     dprice += 1.8 
    End If 
    If radCoffee.Checked Then 
     dprice += 2.0 
    End If 
    GetDrinkPrice = dprice 
End Function 
0

Переменные, которые вы печатаете, нигде не установлены. Для того, чтобы заполнить их вам нужно что-то вроде: -

price = GetCakePrice() ' (The passed parameter serves no purpose here) 

а в качестве первой строки в функции объявить локальную рабочую переменную: -

Function GetCakePrice() As Double 

    Dim price As Double 

    If chkChoco.Checked Then 
    . 
    . 
    etc 
    .