将字符串转换为float并将其格式化(C#)

时间:2012-01-07 11:45:49

标签: c# .net windows

我正在尝试将浮点数转换为字符串。

我有一个表示CPU负载的字符串(dividestring [2]),例如0.00或0.01或0.54等。

然后我想把它转换成浮点数,所以我做了以下几点:

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

现在,当我尝试显示浮动时,例如:

MessageBox.Show(insertCPUvalue.ToString());

我得到:" 0",现在我假设这是因为字符串" dividestring [2]"是==" 0.00",所以刚刚取小数点? - 并将其四舍五入为0?

6 个答案:

答案 0 :(得分:5)

如果insertCPUvaluefloat,则可以使用

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

有关格式的更多信息:

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

答案 1 :(得分:1)

试试这个:

MessageBox.Show(insertCPUvalue.ToString("0.00"));

答案 2 :(得分:1)

float f = 0.0000666f;
Messagebox.Show(String.Format("{0:0,0.0000000}", f)); 

答案 3 :(得分:1)

您应该使用不变文化来解析您的字符串。

float.TryParse("0.58", NumberStyles.Any, CultureInfo.InvariantCulture, out f);

答案 4 :(得分:0)

使用

MessageBox.Show(insertCPUvalue.ToString("F02"));

答案 5 :(得分:0)

我认为问题是你在dividedstring(2个元素的数组)中有2个元素,并且你传递的dividedstring[2]没什么(因为索引从0开始,所以你有元素0和元素1),这将抛出一个异常,但TryParse将捕获它并返回赋值0,所以尝试传递dividedstring[1] istead

要确保这一点,只需尝试使用Parse:

insertCPUvalue.Parse(dividedstring[2]);

如果我的预测是正确的,这应该抛出异常。