Преобразование строки в float и ее форматирование (C #) - PullRequest
2 голосов
/ 07 января 2012

Я пытаюсь преобразовать число с плавающей точкой в ​​строку.

У меня есть строка (splitstring [2]), которая представляет загрузку процессора, например, 0,00 или 0,01 или 0,54 и т. Д.

I тогдахотел бы преобразовать это в число с плавающей точкой, поэтому я делаю следующее:

float.TryParse(dividedstring[2], out insertCPUvalue);

Теперь, когда я пытаюсь отобразить число с плавающей точкой, например:

MessageBox.Show(insertCPUvalue.ToString());

Я получаю: "0",теперь я предполагаю, что это потому, что строка "splitstring [2]" была == "0.00", поэтому она только что взяла десятичные точки?- и округлил до 0?

Ответы [ 6 ]

5 голосов
/ 07 января 2012

Если insertCPUvalue равно float, вы можете использовать

MessageBox.Show(string.Format("{0:0.00}%", insertCPUvalue));

Больше о форматах:

http://msdn.microsoft.com/en-us/library/0c899ak8.aspx

1 голос
/ 07 января 2012

Вы должны использовать инвариантную культуру для разбора вашей строки следующим образом.

float.TryParse("0.58", NumberStyles.Any, CultureInfo.InvariantCulture, out f);
1 голос
/ 07 января 2012
float f = 0.0000666f;
Messagebox.Show(String.Format("{0:0,0.0000000}", f)); 
1 голос
/ 07 января 2012

Попробуйте это:

MessageBox.Show(insertCPUvalue.ToString("0.00"));
0 голосов
/ 07 января 2012

Я думаю, что проблема в том, что у вас есть 2 элемента в dividedstring (массив из 2 элементов), и вы передаете dividedstring[2], что является ничем (поскольку индекс начинается с 0, поэтому у вас есть элемент 0 и элемент 1), это вызовет исключение, но TryParse перехватит его и вернет присвоение 0, поэтому попробуйте передать dividedstring[1] istead.

Чтобы убедиться в этом, попробуйте использовать Parse:

insertCPUvalue.Parse(dividedstring[2]);

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

0 голосов
/ 07 января 2012

Используйте

MessageBox.Show(insertCPUvalue.ToString("F02"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...