Member 13318869 Ответов: 1

Ошибка ввода строки не была в правильном формате.


Input string was not in a correct format.

Я пытаюсь преобразовать vb в c# для двойного значения, но у меня есть эта ошибка "
Input string was not in a correct format."


Вот VB
If CDbl(TxtBx_ClaimValue.Text) = CDbl(0) Then
    Lbl_Message.Text = "Error. Claim Value ?"
    TxtBx_ClaimValue.Focus()
    Exit Sub
End If


Вот это с#
if (Convert.ToDouble(Txtbx_ClaimValue.Text) == (double)0)
{
    Lbl_Message.Text = "Error. Claim Value ?";
    Txtbx_ClaimValue.Focus();
    return;
}


Can somebody please help me?


Что я уже пробовал:

Я понятия не имею, что не так с кодом.

CHill60

Проблема заключается в содержимом TxtBx_ClaimValue - что там находится?
Попробуйте использовать Double.TryParse вместо CDbl

1 Ответов

Рейтинг:
1

OriginalGriff

Не используйте операции преобразования для пользовательского ввода: они выдают исключение, если пользователь вводит что-то неправильно.
Вместо этого используйте TryParse:

double d;
if (!double.TryParse(Txtbx_ClaimValue.Text, out d))
   {
   .. Report input problem to user do he can fix it ...
   return;
   }
if (d == 0.0)
   {
   Lbl_Message.Text = "Error. Claim Value ?";
   Txtbx_ClaimValue.Focus();
   return;
   }


OriginalGriff

@afzaal_ahmad_zeeshan
Пожалуйста, не редактируйте мои сообщения и не меняйте преднамеренные ошибки компиляции на комментарии: строка

.. Report input problem to user do he can fix it ...
Был обдуман
ly не комментарий, поэтому оператору было предложено вставить свою собственную соответствующую обработку ошибок вместо того, чтобы просто вернуться без сообщения пользователя.
Я откатил изменения назад.