GNT sans publicité, site mobile, fonctionnalitées exclusives...

format ingénieur

Le
Sylvain Jeanneret
Bonjour à tous,

J'aimerais afficher des réels en notation ingénieur (comme les
calculatrices), c'est-à-dire où les puissances de 10 sont des multiples
de 3:

300 -> 300e0
3000 -> 3e3
30000 -> 30e3
300000 -> 300e3

Je n'ai rien trouvé sur le net ni dans l'aide, le format personnalisé
d'Excel (pourquoi pas) ne donne rien non plus.

Est-il possible d'ajouter ses propres formats à
String.Format(fmt, dbl) ?

Si quelqu'un pouvait m'aiguiller vers une solution, cela me retirerait
une épine du pied.

Merci d'avance,

Sylvain

PS
Je débute en C#
Lire les 4 réponses

Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Alexandre Czysz
Le #12273541
Salut

je te conseille

real MyReal = 3000.0;
MyReal .ToString("E");



"Sylvain Jeanneret" news:43fef8f6$0$711$
Bonjour à tous,

J'aimerais afficher des réels en notation ingénieur (comme les
calculatrices), c'est-à-dire où les puissances de 10 sont des multiples de
3:

300 -> 300e0
3000 -> 3e3
30000 -> 30e3
300000 -> 300e3

Je n'ai rien trouvé sur le net ni dans l'aide, le format personnalisé
d'Excel (pourquoi pas...) ne donne rien non plus.

Est-il possible d'ajouter ses propres formats à
String.Format(fmt, dbl) ?

Si quelqu'un pouvait m'aiguiller vers une solution, cela me retirerait une
épine du pied.

Merci d'avance,

Sylvain

PS
Je débute en C#


Sylvain Jeannreret
Le #12273471
Alexandre Czysz a écrit:
Salut

je te conseille

real MyReal = 3000.0;
MyReal .ToString("E");




Salut Alexandre,

Merci, malheureusement cela ne résout rien:
30000 -> 3e4
alors que j'aurais aimé 30e3

De plus, chez moi, le type "real" n'existe pas. J'utilise "double".

J'ai fait une méthode qui formate comme je le voudrais, mais j'aimerais
pouvoir ajouter ce format à String.Format, pour pouvoir écrire par exemple :
String.Format("{0:I2}",30000);

Est-ce possible et si oui, comment ?

Merci d'avance
Sylvain Jeannreret
Le #12273461
Alexandre Czysz a écrit:
Salut

je te conseille

real MyReal = 3000.0;
MyReal .ToString("E");




Salut Alexandre,

Merci, malheureusement cela ne résout rien:
30000 -> 3e4
alors que j'aurais aimé 30e3

De plus, chez moi, le type "real" n'existe pas. J'utilise "double".

J'ai fait une méthode qui formate comme je le voudrais, mais j'aimerais
pouvoir ajouter ce format à String.Format, pour pouvoir écrire par exemple :
String.Format("{0:I2}",30000);

Est-ce possible et si oui, comment ?

Merci d'avance
Alexandre Czysz
Le #12268081
Je te conseil de créer une class dérivé des 2 interfaces suivante
System.IFormatProvider, System.ICustomFormatter

tu peux trouver un exemple dans MSDN.

"Sylvain Jeannreret" news:
Alexandre Czysz a écrit:
Salut

je te conseille

real MyReal = 3000.0;
MyReal .ToString("E");




Salut Alexandre,

Merci, malheureusement cela ne résout rien:
30000 -> 3e4
alors que j'aurais aimé 30e3

De plus, chez moi, le type "real" n'existe pas. J'utilise "double".

J'ai fait une méthode qui formate comme je le voudrais, mais j'aimerais
pouvoir ajouter ce format à String.Format, pour pouvoir écrire par exemple
:
String.Format("{0:I2}",30000);

Est-ce possible et si oui, comment ?

Merci d'avance




Publicité
Suivre les réponses
Poster une réponse
Anonyme