Member 13710862 Ответов: 1

Пожалуйста, помогите мне исправить эту ошибку.


десятичный Дискп = преобразование.ToDecimal(txtDiscountedCashPrice.Text.Trim()) * преобразование.ToInt16(txtQuantity.Text.Trim());

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

десятичный Дискп = преобразование.ToDecimal(txtDiscountedCashPrice.Text.Trim()) * преобразование.ToInt16(txtQuantity.Text.Trim());

Karthik_Mahalingam

Что такое сообщение об ошибке?

1 Ответов

Рейтинг:
2

OriginalGriff

Просто: не используйте преобразование при вводе пользователем.
Вместо этого используйте соответствующие методы TryParse:

decimal discountedCashPrice, quantity;
if (!decimal.TryParse(txtDiscountedCashPrice.Text.Trim(), out discountedCashPrice))
   {
   ... report problem to user
   return;
   }
if (!decimal.TryParse(txtQuantity.Text.Trim(), out quantity))
   {
   ... report problem to user
   return;
   }
decimal DisCp = discountedCashPrice * quantity;
Методы Convert всегда выдают исключение, если пользователь вводит что - то неправильно - и они делают это, пользователи, все время, - но методы TryParse этого не делают-они позволяют вам изящно сообщить пользователю, в чем проблема, и позволить ему исправить ее вместо того, чтобы разбивать ваше приложение.