bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 2009
-
29 nov. 2008 à 17:14
bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 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:
C# arrondir 2 chiffres après virgule
Sql decimal 2 chiffres après virgule - Meilleures réponses
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 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 ?!
bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 20094 29 nov. 2008 à 22:04
Si si j'ai vraiment besoin d'avoir ce comportement précis, je ne veux pas du ".00" quelque soit la culture utilisée. Si y'a pas de solution, tant pis je garde mes cast tout moches :(