Affichage explicite d'un double

Résolu
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015 - 16 avril 2007 à 11:38
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015 - 16 avril 2007 à 14:45
Bonjour,

j'aimerai afficher clairement la valeur d'un double qui ressemble à 0.00005. En effet, si je mets ce double dans une textBox il m'affiche 5E-05 ... je ne peux utiliser .ToString("0.00000") car je ne connais pas la précision...
Merci

DT

8 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
16 avril 2007 à 14:02
Une autre possibilité consiste à transformer ton double en Decimal avant le ToString :

double d = 0.00005;
String s = ((Decimal)d).Tostring();

Amicalement, SharpMao
3
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
16 avril 2007 à 12:42
si tu ne connais pas la précision, j'imagine que ca veut dire que tu récupère un paramètre qui te la donne....qu'est ce qui t'empeche de construire la string du format dynamiquement a ce moment la?
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
16 avril 2007 à 13:03
Je ne comprend pas trop ton problème ?
myTextBox.Text = myDouble.ToString(), non?

<hr />
-Blog-
0
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015
16 avril 2007 à 13:23
leprov : C'est une valeur que je récupère dans une table d'une base de données. Je ne connais donc pas la précision

bidou : en faisant le Tostring() ma textBox m'affiche 5E-05 et non pas 0.00005

Pour le moment, j'ai mis un format du style "0.#########" où je suis certain que ma précision ne dépasse pas 10 chiffres apres la virgule. mais ce n'est pas joli ...
DT
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
2IZI4U Messages postés 9 Date d'inscription mardi 8 novembre 2011 Statut Membre Dernière intervention 6 mai 2007
16 avril 2007 à 13:38
Ce code marche chez moi (bon j'avoue c'est un peu de la bidouille mais j'ai rien trouvé sur les doubles :s) . j'espère qu'il te conviendra ;)
            double d = 0.000000000000005d;
            String s =d.ToString("0.000000000000000000000000000000000000000000000");
            char[] charToTrim = {'0'};
            MessageBox.Show(s.TrimEnd(charToTrim));
0
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015
16 avril 2007 à 13:44
Merci 2IZI4U pour ta solution mais pour le moment, je préfère ma solution avec les # (ca évite le TrimEnd).

DT
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
16 avril 2007 à 14:18
Ou alors comme ceci :

NumberFormatInfo nFormat =
new
NumberFormatInfo();
nFormat.NumberDecimalDigits = 15; // ou un autre...
myTextBox.Text = myDouble.ToString(
"N", nFormat);

<hr />
-Blog-
0
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015
16 avril 2007 à 14:45
SharpMao : C'est ce qu'il me fallait Merci

Bidou : ta solution m'affiche les zéros non significatifs

Merci à vous

DT
0
Rejoignez-nous