2011-08-17 5 views
3

Je travaille sur une application de bureau qui pourrait potentiellement être déployée dans le monde entier. Mon plus gros problème avec l'internationalisation est les devises. Quelques questions:Meilleures pratiques pour travailler avec des devises

J'utilise SQL Server Compact Edition, qui prend en charge le type MONEY. Ma première question est: est-ce que cela va gérer le stockage de données indépendamment de la culture de l'utilisateur?

Ma deuxième question concerne le traitement des données. Je sais que je peux utiliser la chaîne de format "C", et je suppose que tout est bon pour l'affichage, mais lors de la sauvegarde, comment puis-je gérer les valeurs entrées par l'utilisateur? Existe-t-il un moyen standard d'analyser la valeur entrée et de l'enregistrer dans le champ MONEY, tout en étant conscient de la culture et sans avoir à écrire pour des exceptions?

Je travaille avec C# dans WPF, mais je suppose qu'il y a probablement une solution presque universelle à tout cela.

+1

'Decimal.TryParse()' devrait faire la chose culturellement correcte. – cdhowie

Répondre

5

Le type MONEY indique simplement au système d'utiliser les règles d'exactitude et d'arrondi requises pour gérer correctement les calculs monétaires. Il ne sait rien de la monnaie réelle. Vous devez gérer cela dans l'interface utilisateur et avec les règles de conversion des devises.

Le cadre utilise la culture actuelle pour afficher le symbole de devise correct pour les formats de chaîne monétaires, mais si vous affichez des devises différentes, vous devrez remplacer ce comportement. Avec C#/WPF (et Silverlight) si vous éditez la devise en utilisant le StringFormat en XAML, alors il gère aussi l'entrée de l'utilisateur (ou du moins c'est mon expérience).

+0

Les méthodes du framework sont déjà conscientes de la culture. Ils utilisent la culture actuelle du thread appelant pour analyser et convertir les chaînes en conséquence. Vous pouvez également personnaliser ces conversions si nécessaire. – alf

+1

@alfonso - mais si vous affichez différentes devises, vous devez le gérer vous-même. – ChrisF

+0

C'est vrai, mais vous n'avez pas besoin de connaître le formatage spécifique à la culture. Vous pouvez obtenir le IFormatConverter par défaut pour une culture et l'utiliser lors de l'analyse/conversion. – alf

Questions connexes