我对使用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应用程序,它就无法正常工作。
我能知道我到底做错了什么吗?
答案 0 :(得分:0)
尝试使用CultureInfo.InstalledUICulture 这将读取默认操作系统设置。
答案 1 :(得分:0)
文化实际上是执行线程的属性。您能否将当前线程的文化显式设置为您需要的文本并检查?
//France as an example
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");