C#浮动到字符串分隔符



我是C#的新手,目前遇到以下问题。在C#中,我有一个Pi浮点数,我想使用ToString()方法将其转换为字符串。但是该转换给出了一个带有逗号"的字符串结果;31415";。在另一台机器上,它给出了带有点"0"的字符串结果;3.1415";。出现这种情况的原因是什么?我应该怎么做才能得到虚线字符串的结果?

EDIT:问题是,我不能更改代码,但我可以安装和卸载.Net框架,更改操作系统设置等。

编辑:如果不能更改代码。将系统的语言/本地化更改为使用点作为小数分隔符的语言/本土化。在"控制面板"或"设置"中。

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

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

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

这允许您在不更改ThreadCulture的情况下保留它。

但看看这个链接https://learn.microsoft.com/en-us/dotnet/api/system.globalization.cultureinfo?view=net-5.0.慢慢来,很密集。

我只想在程序的入口点设置当前区域性。

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

但是,我也会检查出现逗号分隔符的机器上的区域设置等。

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

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

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

相关内容

  • 没有找到相关文章

最新更新