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.
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");
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.
Console.WriteLine(numba.ToString("C0"));
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)
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. :)
simple: numba.ToString("C2")
plus @ http://msdn.Microsoft.com/pt-br/library/dwhawy9k (v = vs.110) .aspx # CFormatString