C #, как отформатировать значение, взятое из текстового поля? - PullRequest
1 голос
/ 18 марта 2011

это может быть просто, но я все еще плохо знаком с этим языком.

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

Я надеваю это. Я успешно добавил «5» в текстовое поле и нажал кнопку, и он создаст текстовый файл с содержанием «5».

У меня вопрос, как мне отформатировать значение из текстового поля в что-то вроде этого xxxxxxx.xxxxx?

Так что, если я введу 5, как мне создать его в тексте, чтобы он стал 0000005.00000?

Или, если я введу 5.4, как мне заставить его стать таким 0000005.40000?

Может ли кто-нибудь пролить свет? Или пример кодирования?

Ответы [ 6 ]

2 голосов
/ 18 марта 2011

Что вам нужно сделать, это разобрать строку из TextBox в двойную, а затем отформатировать ее обратно в строку, используя NumberFormatInfo.

Чтобы разобрать строку, используйте:

Double d;
Double.TryParse("5.4", out d);

Чтобы отформатировать то, что вы хотите, посмотрите на эти документы и выберите нужный формат: http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

1 голос
/ 18 марта 2011

Попробуйте следующее:

int number = 5;
string content = number.ToString("0000000.00000");
1 голос
/ 18 марта 2011

Разбор вашего TextBox текста в двойную переменную (используя double.Parse или double.TryParse) и попробуйте что-то вроде этого:

double d = 5.0d;
Console.WriteLine(string.Format("{0:0000000.00000}",d));
d = 5.4d;
Console.WriteLine(string.Format("{0:0000000.00000}",d));
1 голос
/ 18 марта 2011

Этот пост в блоге хорош для использования строки. Формат - http://blog.stevex.net/string-formatting-in-csharp/

Также очень полезен MSDN - http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

Например, «если я использую i, введите 5.4 и как мне сделать так, чтобы он стал таким же, как 0000005.40000?»:

Взгляните на эту ссылку MSDN под заголовком «Спецификатор формата десятичного (« D »)»:

Console.WriteLine(value.ToString("D8"));
// Displays -00012345

Взгляните на эту ссылку MSDN под заголовком «Спецификатор формата с фиксированной точкой (« F »)»

integerNumber = -29541;
Console.WriteLine(integerNumber.ToString("F3", 
                  CultureInfo.InvariantCulture));
// Displays -29541.000

Но на самом деле, чтобы достичь того, что вы ищете, лучше всего использовать строку формата, например:

var f = 5.4;
f.ToString("000000000.0000000000000");
// Displays 000000005.4000000000000
0 голосов
/ 18 марта 2011

Прежде всего, текстовое поле дает вам значение в виде (текст) строка .Если вы хотите обработать его далее как число (что вы делаете), вам сначала нужно преобразовать (проанализировать) его.Затем вы просто форматируете число так, как хотите :

var number = Decimal.Parse(textBox.Text);
writer.Write(number.ToString("{0:0000000.00000}", number));
0 голосов
/ 18 марта 2011

Посмотрите вверх string.Format():

http://alexonasp.net/samples/stringformatting/

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