ToString valeur Monetaire [Résolu]

cs_tigroux 105 Messages postés mardi 16 mars 2004Date d'inscription 22 octobre 2008 Dernière intervention - 28 juin 2007 à 18:11 - Dernière réponse : cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention
- 29 juin 2007 à 23:39
Bonjour,

Je soufaite afficher un double dans un label mais à la facon d'une valeur monetaire.
123.00 => 123.00?
Je sais que l'on peux faire cela en faisant ToString("C")

Mais en fait je souhaite que cela affiche
123.20 => 123.20?
123 => 123?
Or le ToString("C") ajoute les decimaux.

Si vous avez une idée.

Merci
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 29 juin 2007 à 20:38
3
Merci
C'est vrai que du coup je me pose aussi la question maintenant...

Enfin, au pire une petite méthode de formatage :

private String ToMoneyString(Decimal dec)
{
    return this.ToMoneyString(dec, CultureInfo.CurrentCulture);
}


private String ToMoneyString(Decimal dec, IFormatProvider provider)
{
    String format = "C";


    if (dec % Decimal.Truncate(dec) == 0)
    {
        format = "C0";
    }


    return dec.ToString(format, provider);
}

Ou en condensé :
private String ToMoneyString(Decimal dec, IFormatProvider provider)
{
    return dec.ToString((dec % Decimal.Truncate(dec) == 0) ? "C0" : "C", provider);
}

/*
coq
MVP Visual C#
CoqBlog
*/

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_coq
TeBeCo 467 Messages postés lundi 24 juin 2002Date d'inscription 9 mars 2011 Dernière intervention - 28 juin 2007 à 19:10
0
Merci
dans la "currentculture" du thread (localization) ou par globalization tu devrais regardé ya surment un reglage des decimales possible

TeBeCo
Commenter la réponse de TeBeCo
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 28 juin 2007 à 20:09
0
Merci
Salut,

Logiquement tu peux faire ce que tu veux avec les chaînes de format numériques personnalisées.

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
cs_tigroux 105 Messages postés mardi 16 mars 2004Date d'inscription 22 octobre 2008 Dernière intervention - 29 juin 2007 à 08:14
0
Merci
-> TeBeCo : Je souhaite pas changer le reglage car je vais les afficher si il y en a.

-> Coq: Ben j'ai deja regarder là.
Mais impossible de trouver le chaine qui va bien pour faire ca. J'ai essayé des "C.##" et autres, mais rien n'y fait.
Commenter la réponse de cs_tigroux
TeBeCo 467 Messages postés lundi 24 juin 2002Date d'inscription 9 mars 2011 Dernière intervention - 29 juin 2007 à 09:09
0
Merci
code le a la main alors ...
Decimal toto = 123
Decimal tata = 123.20
String sRes;

if ((toto - (Int32)toto) != 0)
{
    toto = ((Int32)(toto*100))/100;
    sRes = toto.ToString();
}
else
{
    sRes = ((Int32)toto).Tostring();
}

(idem avec tata)
ou qqchose de similaire enfin ca me semble assez simpliste

TeBeCo
Commenter la réponse de TeBeCo
cs_tigroux 105 Messages postés mardi 16 mars 2004Date d'inscription 22 octobre 2008 Dernière intervention - 29 juin 2007 à 09:22
0
Merci
Oui non le faire à la main c'est pas un probleme, mais je suis quasi persuadé que l'on peux faire ca sans coder de code.
Le ToString est la autant que l'on s'en serve. Mais si persone n'a de reponse, je ferais ca. En tout cas merci.
Commenter la réponse de cs_tigroux
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 29 juin 2007 à 11:57
0
Merci
Je ne sais pas si ça résoud le problème, mais tu peux indiquer le nombre de décimal désirée en faisant:
"CX" ou x est le nombre de décimal

......ToString(C0);

<hr />
-Blog-
Commenter la réponse de cs_Bidou
cs_tigroux 105 Messages postés mardi 16 mars 2004Date d'inscription 22 octobre 2008 Dernière intervention - 29 juin 2007 à 12:18
0
Merci
J'avais trouvé ca aussi.
Mais en fait j'ai besoin que ca affiche les decimales que si il y en a.
Et le "C0" ne les affichera pas du tout.

En même temps je me demande de plus en plus si ca existe :(
Il va falloir que je code
Commenter la réponse de cs_tigroux
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 29 juin 2007 à 12:39
0
Merci
Taper 3 ou 4 lignes de codes, c'est pas la fin du monde ou bien?

<hr />
-Blog-
Commenter la réponse de cs_Bidou
cs_tigroux 105 Messages postés mardi 16 mars 2004Date d'inscription 22 octobre 2008 Dernière intervention - 29 juin 2007 à 14:02
0
Merci
Non ce n'est pas le fait de tapper des lignes de codes, c'est le fait de ne pas trouver cela. Cela m'etonne de C#   :)
Commenter la réponse de cs_tigroux
TeBeCo 467 Messages postés lundi 24 juin 2002Date d'inscription 9 mars 2011 Dernière intervention - 29 juin 2007 à 20:42
0
Merci
demandes toi si tu perds plus de temps a trouver une methode en 1 ligne qui te semble parfaite mais que marlgres tout ecrira les ligne qui te manque en IL ou le faire directement en C# qui sera aussi traduis en IL et peut etre meme mieux optimisé au final ...
et compare le temps que tu perd sur le forum pour ca :p

TeBeCo
Commenter la réponse de TeBeCo
cs_tigroux 105 Messages postés mardi 16 mars 2004Date d'inscription 22 octobre 2008 Dernière intervention - 29 juin 2007 à 22:16
0
Merci
Je pense que je ne suis pas le seul a vouloir utiliser les possibilités offertes pas .Net.

Apres faire du code, alors que d'autre on fait quelque chose qui est certainement mieux, je trouve ca dommage.

Apres ce n'est qu'un avis
Commenter la réponse de cs_tigroux
cs_tigroux 105 Messages postés mardi 16 mars 2004Date d'inscription 22 octobre 2008 Dernière intervention - 29 juin 2007 à 22:18
0
Merci
En tout cas merci pour votre aide, et merci au coq qui comme d'habitude donne du code nickel
Commenter la réponse de cs_tigroux
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 29 juin 2007 à 22:36
0
Merci
Je pense qu'il disait plus ça dans le sens ratio intérêt/temps "perdu" ^^
Après je suis le premier à préférer utiliser l'intégré (la plupart de ces gens doivent avoir des compétences supérieures aux miennes, et c'est justement eux qui effectuent la maintenance !).
Mais là je serais étonné qu'un format permette de faire ça directement (et si c'est le cas, il suffira de remplacer le code de la méthode sans briser l'existant reposant dessus), ainsi tu peux te pencher sur les taches plus urgentes :-)

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
cs_tigroux 105 Messages postés mardi 16 mars 2004Date d'inscription 22 octobre 2008 Dernière intervention - 29 juin 2007 à 23:27
0
Merci
C'est deja ce que je faisais, j'avais même deja fait le code pour le faire. Mais je me suis dit on verra bien si on pouvait mieux faire

En tout cas merci à vous tous
Commenter la réponse de cs_tigroux
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 29 juin 2007 à 23:39
0
Merci
De rien :-)

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.