OVH Cloud OVH Cloud

format ingénieur

4 réponses
Avatar
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#

4 réponses

Avatar
Alexandre Czysz
Salut

je te conseille

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



"Sylvain Jeanneret" schrieb im Newsbeitrag
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#


Avatar
Sylvain Jeannreret
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
Avatar
Sylvain Jeannreret
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
Avatar
Alexandre Czysz
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" schrieb im Newsbeitrag
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