64 votes

Comment formater un double en devise arrondie au dollar le plus proche?

Maintenant j'ai

 double numba = 5212.6312
String.Format("{0:C}", Convert.ToInt32(numba) )
 

Cela me donnera

 $5,213.00
 

mais je ne veux pas le ".00".

Je sais que je peux simplement laisser tomber les trois derniers caractères de la chaîne à chaque fois pour obtenir l'effet, mais il me semble qu'il devrait y avoir un moyen plus facile.

98voto

Marc Gravell Points 482669

Premièrement - ne gardez pas la devise dans un double - utilisez plutôt un decimal . À chaque fois. Ensuite, utilisez "C0" comme spécificateur de format:

 decimal numba = 5212.6312M;
string s = numba.ToString("C0");
 

24voto

Noldorin Points 67794

Cela devrait faire le travail:

 String.Format("{0:C0}", Convert.ToInt32(numba))
 

Le nombre après le C spécifie le nombre de décimales à inclure.

Je suppose que vous voulez vraiment utiliser le type decimal .aspx) pour stocker de tels nombres.

5voto

RedFilter Points 84190
Console.WriteLine(numba.ToString("C0"));

3voto

Pejvan Points 376

Je pense que la bonne façon d'atteindre votre objectif est la suivante:

 Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalDigits = 0;
 

et alors seulement, vous devriez faire l'appel Format:

 String.Format("{0:C0}", numba)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X