C# 浮点数到字符串分隔符

C# float to string separator

我是 C# 新手,目前遇到以下问题。在 C# 中,我有一个 Pi 浮点数,我想使用 ToString() 方法将其转换为字符串。但是转换会给出一个带有逗号“3,1415”的字符串结果。在另一台机器上,同样给出带点“3.1415”的字符串结果。这是什么原因,我应该怎么做才能得到点分字符串结果?

编辑:问题是,我无法更改代码,但我可以安装和卸载 .Net 框架,更改我的 OS 设置等。

我会在你程序的入口点设置当前文化。

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");

不过,我还会在出现逗号分隔符的机器上检查区域设置等。

编辑:如果您无法更改代码。将系统的 language/localization 更改为使用点作为小数点分隔符的系统。在控制面板或设置中。

您应该查看 System.Globalization 命名空间中的国际化和本地化。

这里的建议是使用一个特定于解析数字或将数字写入字符串的 CultureInfo。

var flt = 232.23f;

var str = flt.ToString(CultureInfo.InvariantCulture); //for example, you can use CultureInfo.CurrentCulture

这允许您保留 ThreadCulture 而无需更改它。

不过看看这个linkhttps://docs.microsoft.com/en-us/dotnet/api/system.globalization.cultureinfo?view=net-5.0。慢慢来,密密麻麻。

与当前culture info有关。您可以在 ToString 方法中将区域性信息指定为参数,例如;

var convertedFloat = floatVariable.ToString(new CultureInfo("en-GB"));

感谢 GSerg 对 Windows 区域设置的评论。这解决了我的问题。在 Windows 控制面板中输入区域和语言。在“格式”选项卡中单击“其他设置”,然后在“小数点符号”字段中指定将浮点数转换为字符串时必须使用的小数点分隔符。