web-dev-qa-db-fra.com

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

En ce moment 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 supprimer les trois derniers caractères de la chaîne à chaque fois pour obtenir l'effet, mais il semble qu'il devrait y avoir un moyen plus simple.

59
spilliton

Premièrement - ne conservez pas la devise dans un double - utilisez plutôt un decimal à la place. À chaque fois. Utilisez ensuite "C0" comme spécificateur de format:

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

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 soupçonne cependant que vous voulez vraiment utiliser le type decimal pour stocker de tels nombres.

24
Noldorin
Console.WriteLine(numba.ToString("C0"));
5
RedFilter

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) 
3
Pejvan
 decimal value = 0.00M;
        value = Convert.ToDecimal(12345.12345);
        Console.WriteLine(".ToString(\"C\") Formates With Currency $ Sign");
        Console.WriteLine(value.ToString("C"));
        //OutPut : $12345.12
        Console.WriteLine(value.ToString("C1"));
        //OutPut : $12345.1
        Console.WriteLine(value.ToString("C2"));
        //OutPut : $12345.12
        Console.WriteLine(value.ToString("C3"));
        //OutPut : $12345.123
        Console.WriteLine(value.ToString("C4"));
        //OutPut : $12345.1235
        Console.WriteLine(value.ToString("C5"));
        //OutPut : $12345.12345
        Console.WriteLine(value.ToString("C6"));
        //OutPut : $12345.123450

cliquez pour voir l'écran Console Out Put

J'espère que cela peut vous aider ...

Merci. :)

2
Bhanu Pratap
0
Rodrigo Reis