Member 13410460 Ответов: 2

Как установить правильный формат для моих результатов в label.text ?


Всем Привет,

Я делаю некоторые вычисления, используя значения из меток, в которых эти метки получают значения из SQL.
Если я использую простой способ деления, то я получаю очень большую ценность,
Например :

LabelTotal.Text = LabelTotal.Text / textDivide.Text


и я делаю деление между 300/3, 300-это число, которое приходит из SQL, а 3-это число, которое я вставляю вручную в свой текст.box, и я получаю результаты из 5 цифр без запятой или полного разделения стоп.

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

Я попробовал эту версию кода и она не сработала,
'Dim val1 As Int32 = Convert.ToInt32(Labalsum.Text)
        'Dim val2 As Int32 = Convert.ToInt32(textDivide.Text)
        'Dim val3 As Int32 = val1 / val2
        'LabelTotal.Text = Convert.ToString(val3) 


на val1 это дает мне эту ошибку :
Input string was not in a correct format.


И я попробовал другой способ который заключается в следующем :

Dim res As Integer = 0
res = Convert.ToInt32(LabelTotal.Text) / Convert.ToInt32(textDivide.Text)
Labalsum.Text = res.ToString()


и это дает мне ту же ошибку. Я хотел бы иметь результат с полной остановкой, когда он достигнет 1K. Пример: "1.500,25 "
Любая помощь очень ценится.

CHill60

Текст в ваших метках не полностью числовой, поэтому вы получаете ошибки. Используйте int.TryParse вместо Convert.ToInt32.
Для форматирования результатов посмотрите на параметры, которые вы можете использовать .Метод toString

Member 13410460

Спасибо за ваш ответ, он не позволит мне использовать tryparse.

CHill60

То, что не позволит вам использовать .Метод tryparse? Вы отметили свой вопрос VB.NET!

2 Ответов

Рейтинг:
2

Richard MacCutchan

Не думайте, что вводимый текст будет действительным. Вам нужно проверить все входы firs. Так что используйте Int32.TryParse как пояснили в Типа int32.Метод TryParse (Система) | Microsoft Docs[^]. Обратите внимание, что если числа не являются целыми числами, то используйте Double скорее, чем Int32.


Member 13410460

Числа являются целыми числами, только что в labelsum.the text приходит значение со знаком евро в нем.

Richard MacCutchan

Знак евро-это не числовая цифра, поэтому вам сначала нужно разобрать ее.

Member 13410460

Спасибо за ответ, как я могу разобрать из него только знак евро?

Member 13410460

Я имею в виду, когда я использую его таким образом: ярлыки.Text = LabelTotal.Текст / textDivide.Текст он работает, просто запятая находится не в нужном месте и ошибки нет.

Richard MacCutchan

Разделите строку или используйте метод Replace.

Richard MacCutchan

Это невозможно, так как его нет. / оператор для строк.

Рейтинг:
1

Sandeep Mewara

Что такое строковое значение: Labalsum.Текст ?

Кажется, это не допустимое целочисленное значение, которое можно преобразовать с помощью Convert.Int32 и отсюда ошибка.
Он может содержать десятичную точку, алфавит или любые знаки препинания. Убедитесь, что у вас есть допустимая строка для преобразования.

Если вы не можете обработать строковое значение, вы можете использовать: Типа int32.Метод TryParse (Система) | Microsoft Docs[^]. С его помощью вы можете сначала увидеть, было ли преобразование успешным или нет, и соответственно любой код, основанный на нем.


Member 13410460

Здравствуйте, спасибо за ваш ответ, у него есть знак евро перед номером.

Sandeep Mewara

Вам нужно удалить его так, чтобы это были только цифры, и тогда ваше преобразование будет работать. :большой палец вверх:

Member 13410460

Спасибо за вашу помощь, есть ли способ сделать это с помощью знака евро ? это как-то связано с деньгами. Спасибо