使用 . 将浮点数转换为字符串。而不是 , [重复]

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】:

您可以将InvariantCultureToString 一起使用:

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"

【讨论】:

以上是关于使用 . 将浮点数转换为字符串。而不是 , [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将浮点数转换为字符串而不会丢失精度

Javascript将浮点数转换为指数[重复]

C将浮点数转换为int

Python如何将浮点数作为十六进制转换为十进制

将浮点数转换为美元和美分

将浮点数转换为字符串