2009-11-17 5 views
2

J'ai une application console (qui est également exécutée en tant que service lorsqu'elle est déployée). Je lis les valeurs qui proviennent d'un fichier texte. Le problème est que je ne peux pas obtenir les valeurs décimales pour fonctionner correctement.Problème de culture lors de la lecture des valeurs décimales formatées

Ils sont formatés de manière "suédoise", comme ceci 3,4 qui en format "anglais" est 3.4.

Quand j'utilise:

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

Je reçois un

Culture 'sv' est une culture neutre. Il ne peut pas être utilisé dans le formatage et analyse et ne peut donc pas être défini comme la culture actuelle du thread.

exception.

Si je tente:

Decimal.TryParse(value, out result); 

La valeur se trucated (3,4 devient 3).

Existe-t-il un moyen de lire ces valeurs formatées (qui peuvent également être des entiers) de manière robuste et sûre, quels que soient les paramètres dans le système d'exploitation.

Répondre

4

You need to use "sv-SE"

par défaut « sv » à « sv-FR » vous devez spécifier un pays puis une langue dans ce cas.

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

Résultat 2,3

+0

Great! Merci pour votre réponse! – kaze

Questions connexes