使用当前文化

本文关键字:文化 | 更新日期: 2023-09-27 18:25:06

我在使用CultureInfo调用从我的机器获取当前区域性时遇到了问题。我必须使用数字分隔符作为逗号(,)而不是点(.)

我去了区域设置->附加设置->十进制符号设置为逗号(,)。

我的代码如下所示

double number = 123.456;
string convertToString = Convert.ToString(number, CultureInfo.CurrentCulture);

我得到的输出与123.456相同,但我的预期输出是123456(因为我已经将十进制符号设置为逗号)

我试着明确地设置数字格式,如下所示

CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.NumberFormat.NumberDecimalSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;

我在示例控制台应用程序中尝试过,得到了所需的输出(123456),但如果我在WPF应用程序中进行尝试,它就不起作用了。

我能知道我到底哪里做错了吗!

使用当前文化

尝试使用CultureInfo.InstalledUICulture这将读取默认操作系统设置。

Culture实际上是执行线程的一个属性。你能明确地将当前线程的区域性设置为你需要并检查的区域性吗?

//France as an example
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");