Назад снова с другим вопросом noob, который прослушивает дерьмо из меня. Я потратил 2 дня, пытаясь понять это. Кажется, что у меня и VB и отрицательные числа всегда возникают недоразумения.VB - Отрицательное число и условное обозначение
У меня есть все остальное в программе для расчета процентного калькулятора жира, кроме условного оператора, который ДОЛЖЕН распечатывать сообщение об ошибке, если либо двойное преобразование двух строк в текстовом поле меньше нуля. Однако, несмотря на то, что я вводил отрицательные числа для обоих при тестировании, программа пропускает мой оператор ошибки Else и в любом случае вычисляет два отрицательных числа и получает какое-то совершенно нелепое процентное процентное число. Это даже не похоже на то, что это просто происходит с выражениями, если часть кода «If-Then», как я делал математику, и процентный ответ не совпадают.
Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click
'Declare variables
Dim dblCaloriesInFood As Double
Dim dblGramsOfFat As Double
Dim dblPercentageOfCaloriesFromFat As Double
Dim dblCaloriesFromFat As Double
'Always initialize lblLowInFat message as not visible when button is clicked
lblLowInFat.Visible = False
Try
'Converting textbox strings to double.
dblCaloriesInFood = CDbl(txtCaloriesInFood.Text)
dblGramsOfFat = CDbl(txtGramsOfFat.Text)
If dblCaloriesInFood Or dblGramsOfFat > 0 Then
'Calculate Calories from fat
dblCaloriesFromFat = dblGramsOfFat * 9
'Calculate percentage of calories from fat
dblPercentageOfCaloriesFromFat = dblCaloriesFromFat/dblCaloriesInFood
'Display percentage of calories from fat
If dblPercentageOfCaloriesFromFat >= 0 Then
lblMessage.Text = dblPercentageOfCaloriesFromFat.ToString("p")
Else
lblMessage.Text = String.Empty
End If
'Display low fat message
If dblPercentageOfCaloriesFromFat <= 0.3 And dblPercentageOfCaloriesFromFat > 0 Then
lblLowInFat.Visible = True
End If
Else
'really tried to make this message work but couldn't figure it out.
'why does it only display this message when zero is entered and not when
'negative numbers are entered. instead it just calculates the negative numbers
'as if they were whole positive numbers or something, not sure because the percentage
'is way off the charts when i enter negative numbers. can't figure this out.
MessageBox.Show("Either the calories or fat grams were incorrectly entered")
txtCaloriesInFood.Text = String.Empty
txtGramsOfFat.Text = STring.Empty
txtCaloriesInFood.Focus()
End If
Catch
'error message for invalid input
MessageBox.Show("Please enter a numeric value for calories in food & number of fat grams.")
txtCaloriesInFood.Focus()
End Try
End Sub
Блестящий! Это сработало отлично. Огромное спасибо. – Popsiclestand