文化问题阅读格式化十进制值

时间:2009-11-17 14:57:28

标签: .net text culture

我有一个控制台应用程序(在部署时也作为服务运行)。我正在读取源自文本文件的值。问题是我无法使小数值正常工作。

它们采用“瑞典方式”格式化,例如3,4,其格式为“{1}}。

当我使用时:

3.4

我得到了

  

文化'sv'是一种中性文化。它   不能用于格式化和   解析因此无法设置为   线程的当前文化。

异常。

如果我尝试:

Decimal.TryParse(value, NumberStyles.Number, new CultureInfo("sv"), out result);

该值被终止(3,4变为3)。

有没有办法以健壮和安全的方式读取这些格式化的值(也可以是整数),无论操作系统中的设置如何。

1 个答案:

答案 0 :(得分:4)

You need to use "sv-SE"

“sv”默认为“sv-EN”您需要指定一个国家/地区,然后在这种情况下指定一种语言。

static void Main(string[] args)
{
  decimal result;
  Decimal.TryParse("2,3", NumberStyles.Number, new CultureInfo("sv-SE"), 
                   out result); 
  Console.WriteLine(result);
  Console.ReadLine();
}

结果 2.3