Decimal: 2 chiffres après la virgule sinon rien

bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 - 29 nov. 2008 à 17:14
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 - 29 nov. 2008 à 22:04
Bonjour,

Je manipule des decimal pour de l'argent, et je souhaite les afficher selon la condition suivante:

S'ils ont des chiffres après la virgule, alors on les écrit avec 2 chiffres après la virgule (ie: 5.34 => 5.34, 6.1 => 6.10)
S'ils n'en ont pas, alors on les écrit comme des entiers, c'est à dire sans afficher .00

Je ne sais pas trop comment faire, pour le moment je cast le decimal en int puis le recast en decimal pour le comparer à l'original, et j'écris ca:

decimal d;
int i = (int)d;

            if ((decimal)i == d)
            {
                //le decimal est un entier: pas de chiffre après la virgule
                return String.Format("${0}", i.ToString(_culture.NumberFormat));
            }
            else
            {
                //2 chiffres après la virgule
                return String.Format("${0}", d.ToString("{0:0.00}", _culture.NumberFormat));
            }

Y'a t-il moyen de compacter tout ça dans un seul truc?
A voir également:

2 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
29 nov. 2008 à 20:52
Hello,
Le format monétaire est obtenu avec "c" ... (donc par exemple String.Format("{0:c}", x)). C'est lui qui décidera si oui ou non il faut afficher des zéros pour les francs entier selon la culture (enfin, je ne sais même pas si pour une certaine culture ça se fait comme ça...)

Je ne suis pas persuadé que ce soit bien que ce soit toi qui décides de ça ?!

<hr />
-Blog-
-Site Perso-
0
Rejoignez-nous