我有一个控制台应用程序(在部署时也作为服务运行)。我正在读取源自文本文件的值。问题是我无法使小数值正常工作。
它们采用“瑞典方式”格式化,例如3,4
,其格式为“{1}}。
当我使用时:
3.4
我得到了
文化'sv'是一种中性文化。它 不能用于格式化和 解析因此无法设置为 线程的当前文化。
异常。
如果我尝试:
Decimal.TryParse(value, NumberStyles.Number, new CultureInfo("sv"), out result);
该值被终止(3,4变为3)。
有没有办法以健壮和安全的方式读取这些格式化的值(也可以是整数),无论操作系统中的设置如何。
答案 0 :(得分:4)
“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