利用当前的文化

时间:2014-09-30 09:18:14

标签: c# wpf localization cultureinfo

我对使用CultureInfo调用从我的机器获取当前文化有疑问。我必须使用数字分隔符作为逗号(,)而不是点(。)

我转到区域设置 - >其他设置 - >十进制符号设置为逗号(,)。

我的代码如下所示

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

我的输出与123.456相同,但我的预期输出为123,456(因为我将小数点符号设置为逗号)

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

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

我在示例控制台应用程序中尝试了这个,我得到了所需的输出(123,456),但是如果我尝试使用WPF应用程序,它就无法正常工作。

我能知道我到底做错了什么吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

文化实际上是执行线程的属性。您能否将当前线程的文化显式设置为您需要的文本并检查?

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