saimanisha Ответов: 2

Как добавить десятичное значение со значением textbox всегда используя операцию сложения и сохранить в textbox .text?


я хочу добавить десятичное значение со значением текстового поля и сохранить его как же текстовое поле текст.
проблема в том, что iam получает исключения, входная строка была недопустимой
или же он конкатинируется, но не выполняет операцию сложения.как мне выполнить операцию сложения .надеюсь, вы скажете мне, если вы один знаете это .

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

public void GETEXTRABEDCOST(int APPLY,Decimal EXTCOST)
      {

          decimal COST =( APPLY * EXTCOST);

          txtextrabedcost.Text =txtextrabedcost.Text+ COST .ToString();


      }

F-ES Sitecore

Воспользуйся Десятичный.Метод tryparse чтобы преобразовать txtextrabedcost.Текст в десятичную дробь, затем добавьте стоимость к этой десятичной дроби и установите txtextrabedcost.Текст к результату этого добавления преобразуется в строку

2 Ответов

Рейтинг:
2

Sanjay Dholakiya (Australia)

Привет,

Вы упомянули здесь две проблемы.
1) он создает исключение, когда входная строка недопустима.
2) не выполняет сложение, а скорее выполняет конкатенацию.

Вот решения для обоих этих вопросов.

1) Чтобы избежать исключения, вам нужно убедиться, что значение текстового поля является допустимым числовым значением. Как вы это делаете? Ну, так много способов, но лучше всего использовать .Метод TryParse, как показано ниже.

десятичное значение;
var isValid = десятичное число.Метод tryparse(textbox1 элемент.Текст, значение из )
isValid будет иметь значение true, если текст текстового поля является допустимым числовым значением.

2) в языке C# оператор + имеет два значения. Первый - это сложение, а второй-конкатенация. Теперь, если у него есть какой-либо один из операндов string, он будет выполнять конкатенацию, Преобразуя другой операнд в string.
В вашей ситуации используйте переменную value, которая устанавливается, если десятичное преобразование было успешным.

Надеюсь, это поможет.

Санджай


saimanisha

да, я попытался преобразовать текстовый формат в десятичный и добавил два десятичных знака, а затем преобразовал их в текстовый формат и прикрепил к текстовому полю текст.

Рейтинг:
1

Super Superman

C# - это строго типизированный язык, поэтому вы не можете добавлять десятичные типы к строковым типам. Вам нужно преобразовать входные данные из строки в десятичную дробь. К счастью, в .NET это довольно просто.

public void GETEXTRABEDCOST(int APPLY, Decimal EXTCOST)
{
   decimal COST = APPLY * EXTCOST;
   decimal currentValue;
   if (decimal.TryParse(txtextrabedcost.Text, out currentValue))
   {
      // Choose the formatting option that suits you needs..
      txtextrabedcost.Text = string.Format("{0:0.00}", currentValue + COST);
   }
   else
   {
      // Error handling
   }
}


Смотреть также Строки Стандартного Числового Формата | Microsoft Docs[^]