Может ли кто-нибудь сказать, как я могу отформатировать текстовое значение текстового поля - PullRequest
3 голосов
/ 27 декабря 2011

Привет всем, я делаю программу для округления текста, введенного в текстовом поле. Пример ввода

Entered value      output value
  100                100.00
   50                 50.00

Как и я, я хотел бы отформатировать значение моего текстового поля на textBox1_Leave событие

Я попробовал это, но у меня не получилось

private void textBox1_Leave(object sender, EventArgs e)
{
    string str = string.Format(textBox1.Text, "##.00");
    textBox1.Text = str;
}

Может ли кто-нибудь помочь мне

Ответы [ 2 ]

6 голосов
/ 27 декабря 2011

Вам нужно будет преобразовать эту строку в число, затем , вызвать формат.Кроме того, вы использовали формат неправильно.Вам нужно будет использовать заполнитель, как это

string str = String.Format("{0:F2}", Double.Parse(textBox1.Text));
textBox1.Text = str;

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

double d = 0;            
textBox1.Text = 
       Double.TryParse(textBox1.Text, out d) ? String.Format("{0:F2}", d) : "0";
3 голосов
/ 27 декабря 2011

Проблема в том, что ваше текстовое поле уже является строкой.Попробуйте это:

private void textBox1_Leave(object sender, EventArgs e)
{
    var input = Convert.ToDouble(textbox1.Text);
    textBox1.Text = input.Tostring("#.00");
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...