【问题标题】:Culture problem reading formatted decimal values读取格式化十进制值的文化问题
【发布时间】:2009-11-17 14:57:28
【问题描述】:

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

它们以“瑞典方式”格式化,例如3,4,在“英文”格式中为3.4

当我使用时:

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

我得到一个

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

异常。

如果我尝试:

Decimal.TryParse(value, out result);

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

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

【问题讨论】:

    标签: .net text culture


    【解决方案1】:

    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

    【讨论】:

    • 太棒了!感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多