2009-04-14 9 views
2

J'ai une application qui traite de la monnaie. À des fins d'affichage, j'utilise la fonction VB FormatCurrency astucieuse qui formatera en fonction du paramètre de région du système d'exploitation. Donc, si en France, vous pourriez obtenir 123,45 alors qu'aux États-Unis vous obtiendrez 123,45.Decimal.toString() pour toute région utilisant VB.NET

Pour effectuer le calcul sur ces montants, j'utilise CDec() pour convertir en décimal.

Mon problème est que lorsque je convertis le Decimal en String en utilisant toString(), il formate en fonction de la région actuellement définie. Je dois pouvoir toujours convertir la décimale en une représentation de chaîne pour les États-Unis, c'est-à-dire avec des points décimaux.

Je pensais que je serais capable de faire quelque chose de similaire à ceci: .toString ("# 0.00")

Répondre

0

Essayez de passer InvariantCulture dans votre méthode ToString():

Dim dec As Decimal = 1.25D 
dec.ToString(System.Globalization.CultureInfo.InvariantCulture); 
//writes 1.25 
2

Essayez:

value.ToString("C", CultureInfo.InvariantCulture) 

Plus d'infos ici:
http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

Le "C" est à formater pour la monnaie, mais vous pouvez utiliser beaucoup de différentes chaînes de format. Si vous le voulez vraiment formaté pour "US" plutôt que la culture invariante vous pouvez le faire:

value.ToString("C", CultureInfo.CreateSpecificCulture("en-US")) 
2

Ce

Dim dec As Decimal = 1.25D 
    Dim s As String 
    s = dec.ToString("C2", System.Globalization.CultureInfo.CreateSpecificCulture("en-US")) 

produit 1,25

$ Ce

s = dec.ToString("N2", System.Globalization.CultureInfo.CreateSpecificCulture("en-US")) 

produit 1,25

Questions connexes