2010-11-04 4 views
4

Je suis une chaîne avec le format de la monnaie comme 35,00 $, ce qui doit être converti en 35.Comment formater une chaîne monétaire en entier?

Est-ce possible de récupérer en utilisant String.Format{ }

+3

duplication possible de [Convertir n'importe quelle chaîne de devises en double] (http://stackoverflow.com/questions/2753701/convert-any-currency-string-to-double) –

+0

Quelque chose de très similaire a déjà été demandé. http://stackoverflow.com/questions/2753701/convert-any-currency-string-to-double – Patko

Répondre

11
int value = int.Parse("$35.00", NumberStyles.Currency); 

devrait vous donner la réponse dont vous avez besoin. Cependant, une valeur de $ 35.50 convertie en nombre entier ne retournera probablement pas ce que vous voulez, car les entiers ne supportent pas les nombres partiels (décimaux). Vous n'avez pas précisé à quoi s'attendre dans cette situation.

[EDIT: Changé double pour décimal qui est plus sûr d'utiliser la monnaie]

Si vous souhaitez obtenir une valeur de 35,5 dans cette situation, vous pouvez utiliser le type décimal.

decimal value = decimal.Parse("$35.00", NumberStyles.Currency); 

Notez que vous devez être très prudents en traitant avec de l'argent et la précision flottante point.

+2

Vous devez utiliser le type 'decimal' pour toutes les opérations monétaires/liées à l'argent. –

+0

Ah oui, un très bon point. Personnellement, je n'écris jamais de code qui a trait à l'argent et qui tend à oublier le type décimal. – Khalos

+1

Si cela a fonctionné pour vous, envisagez de le marquer comme la réponse. De cette façon, d'autres personnes ayant le même problème savent ce qui a fonctionné. Content que tu l'aies. – Khalos

Questions connexes