将float转换为字符串。代替 ,

时间:2017-04-12 15:46:38

标签: c#

  

"如何将float转换为只有一个小数的字符串"

这个问题已被多次询问,通常的答案是MyFloat.ToString("0.0")或类似的东西。但是,我面临的问题是

float f = 1;
string s = f.ToString("0.0");
MessageBox.Show(s);

输出1,0,但我需要的是1.0。我当然可以在之后手动用点替换逗号,但我非常确定这不是正确的方法。 我无法在互联网上找到解决方案,因为无论在哪里,它都已经输出1.0 怎么样?

3 个答案:

答案 0 :(得分:5)

您可以将InvariantCultureToString

一起使用
string s = f.ToString("0.0", CultureInfo.InvariantCulture);

小数分隔符取决于文化,但InvariantCulture使用.这就是您想要的。

答案 1 :(得分:1)

使用例如InvariantCulture

string s = f.ToString("0.0", CultureInfo.InvariantCulture);

答案 2 :(得分:0)

通用解决方案是:在当前文化中更改NumberDecimalSeparator

System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
customCulture.NumberFormat.NumberDecimalSeparator = ".";
System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
float value1 = 3.55f;
String message = String.Format("Value is {0}", value1); 
Console.Write(message); //--> "Value is 3.55"