VB. Net есть исключение, необработанное, когда я очищаю PriceTxt только потому, что DiscountTxt не получает значение - PullRequest
0 голосов
/ 16 февраля 2020

Моя проблема здесь в том, что всякий раз, когда я помещаю Value Price в PriceTxt, DiscountTxt будет вычислять его скидку, но когда я очищаю PriceTxt, он получает исключение, говорящее «Преобразование из строки» в тип «Double» недопустимо ». Я попытался получить логическое утверждение if, что если PriceTxt.Text = "" DiscountTxt вернется к 0, что означает отсутствие значения для вычисления.

 Dim percentage As Decimal = 0.1
    If PriceTxt.MaxLength > 11 Then
        DiscountTxt.Text = (PriceTxt.Text * percentage)
        DiscountTxt.Text = PriceTxt.Text - DiscountTxt.Text
    End If

    If PriceTxt.Text = "" Then
        DiscountTxt.ResetText()
    End If

Нет, не могу придумать Else if и Else на нем, потому что он тоже не работает.

1 Ответ

0 голосов
/ 16 февраля 2020

Я полагаю, что вы смотрите MaxLength вместо Length здесь.

Вот еще один способ сделать это, используя TryParse. Возвращает True ЕСЛИ ему удалось втиснуть значение в цель. Пожалуйста, смотрите prc как первый.

 Dim percentage As Decimal = 0.1
 Dim prc as Decimal

    If decimal.TryParse(PriceTxt.Text, prc) then 'puts it in a double, if it is.
        DiscountTxt.Text = (prc * percentage)
        Dim discount as Decimal
        If decimal.TryParse(DiscountTxt.Text, discount) Then
           DiscountTxt.Text = prc - discount 'Or is this a total box?
        End If  

    End If

    If PriceTxt.Text = "" Then
        DiscountTxt.ResetText()
    End If
...