2

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

它们以“瑞典方式”格式化,就像3,4“英语”格式中的3.4.

当我使用:

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

我得到一个

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

例外。

如果我尝试:

Decimal.TryParse(value, out result);

该值被截断(3,4 变为 3)。

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

4

1 回答 1

4

您需要使用“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

于 2009-11-17T15:02:22.427 回答