使用 . 将浮点数转换为字符串。而不是 , [重复]
Posted
技术标签:
【中文标题】使用 . 将浮点数转换为字符串。而不是 , [重复]【英文标题】:convert float to string with . instead of , [duplicate] 【发布时间】:2017-04-12 15:46:38 【问题描述】:“如何将浮点数转换为只有一位小数的字符串”
这个问题已经被问过很多次了,通常的答案是MyFloat.ToString("0.0")
或类似的东西。但是,我面临的问题是
float f = 1;
string s = f.ToString("0.0");
MessageBox.Show(s);
输出1,0
,但我需要的是1.0
。我当然可以在之后手动用点替换逗号,但我很确定这不是正确的方法。
我无法在互联网上找到解决方案,因为到处都说这已经输出1.0
怎么会?
【问题讨论】:
和this,和this ... 【参考方案1】:您可以将InvariantCulture
与ToString
一起使用:
string s = f.ToString("0.0", CultureInfo.InvariantCulture);
小数点分隔符取决于文化,但 InvariantCulture
使用 .
,这是您想要的。
【讨论】:
【参考方案2】:以 InvariantCulture 为例
string s = f.ToString("0.0", CultureInfo.InvariantCulture);
【讨论】:
【参考方案3】:通用解决方案是:在当前文化中更改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"
【讨论】:
以上是关于使用 . 将浮点数转换为字符串。而不是 , [重复]的主要内容,如果未能解决你的问题,请参考以下文章