"如何将float转换为只有一个小数的字符串"
这个问题已被多次询问,通常的答案是MyFloat.ToString("0.0")
或类似的东西。但是,我面临的问题是
float f = 1;
string s = f.ToString("0.0");
MessageBox.Show(s);
输出1,0
,但我需要的是1.0
。我当然可以在之后手动用点替换逗号,但我非常确定这不是正确的方法。
我无法在互联网上找到解决方案,因为无论在哪里,它都已经输出1.0
怎么样?
答案 0 :(得分:5)
您可以将InvariantCulture
与ToString
:
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"