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 控制面板中输入区域和语言。在“格式”选项卡中单击“其他设置”,然后在“小数点符号”字段中指定将浮点数转换为字符串时必须使用的小数点分隔符。
我是 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 控制面板中输入区域和语言。在“格式”选项卡中单击“其他设置”,然后在“小数点符号”字段中指定将浮点数转换为字符串时必须使用的小数点分隔符。