2012-01-07 92 views
2

我正在尝试将float转换为字符串。将字符串转换为浮动并将其格式化(C#)

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

话,我想这个转换成浮动的,所以我做到以下几点:

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

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

MessageBox.Show(insertCPUvalue.ToString()); 

我得到:“0”,现在我假设这是因为字符串“dividedstring [2]”是==“0.00”,所以它只取小数点? - 并将其舍入为0?

+0

是分割字符串数组? – BigL 2012-01-07 11:48:24

+0

你好,是的,它是BigL – 2012-01-07 11:49:11

+0

也许是因为文化背景,你的小数点是什么,它是“,”还是“。”这可能会弄乱解析器。 – BigL 2012-01-07 11:51:28

回答

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

试试这个:

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

使用

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

我认为问题是,你必须在dividedstring(阵列2层的元件的)2层的元件,并且要传递dividedstring[2]这只不过(因为指数从0启动,因此有元件0和元件1),这会抛出一个异常,但TryParse将捕获它并返回分配0,所以尝试通过dividedstring[1] istead。

为了确保这一点,只是尝试使用解析:

insertCPUvalue.Parse(dividedstring[2]); 

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

1

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

float.TryParse("0.58", NumberStyles.Any, CultureInfo.InvariantCulture, out f); 
相关问题