2009-11-17 81 views
2

我有一個控制檯應用程序(它也在部署時作爲服務運行)。我正在讀取源自文本文件的值。問題是我無法使小數值正常工作。閱讀格式化的十進制值的文化問題

它們以「瑞典方式」格式化,如「3,4」,「英文」格式爲3.4

當我使用:

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

我得到一個

文化 'SV' 是一箇中立的文化。它 不能用於格式和 解析,因此不能被設置爲 線程的當前文化。

異常。

如果我嘗試:

Decimal.TryParse(value, out result); 

值上trucated(3,4變3)。

是否有一種方法可以以健壯和安全的方式讀取這些格式化值(也可以是整數),而不管操作系統中的設置如何。

回答

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

+0

太好了!感謝您的回答! – kaze 2009-11-18 08:43:21