Affichage explicite d'un double

[Résolu]
Signaler
Messages postés
189
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
27 novembre 2015
-
Messages postés
189
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
27 novembre 2015
-
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

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

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

Amicalement, SharpMao
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
18
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?
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
57
Je ne comprend pas trop ton problème ?
myTextBox.Text = myDouble.ToString(), non?

<hr />
-Blog-
Messages postés
189
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
27 novembre 2015

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
Messages postés
9
Date d'inscription
mardi 8 novembre 2011
Statut
Membre
Dernière intervention
6 mai 2007

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));
Messages postés
189
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
27 novembre 2015

Merci 2IZI4U pour ta solution mais pour le moment, je préfère ma solution avec les # (ca évite le TrimEnd).

DT
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
57
Ou alors comme ceci :

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

<hr />
-Blog-
Messages postés
189
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
27 novembre 2015

SharpMao : C'est ce qu'il me fallait Merci

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

Merci à vous

DT