OVH Cloud OVH Cloud

Convertir un double en chaine avec "n" chiffres apres la virgule

4 réponses
Avatar
Anh Vu Tran
Bonjour

Je suis novice en java, et j'aimerais juste savoir comment convertir
une variable double en String avec disons 2 chiffres après la virgule.
L'affichage avec Double.toString(un_double) donne des valeurs avec 6-7
chiffres après la virgule.

Merci

4 réponses

Avatar
Bernard Koninckx
Bonjour,

Tu peux toujours aller voir la javadoc de la classe abstraite NumberFormat.
Je ne l'ai encore jamais utilisée, mais elle sa compréhension te sera
peut-être utile.

Bernard

"Anh Vu Tran" a écrit dans le message de news:
40052d8c$0$1171$
Bonjour

Je suis novice en java, et j'aimerais juste savoir comment convertir
une variable double en String avec disons 2 chiffres après la virgule.
L'affichage avec Double.toString(un_double) donne des valeurs avec 6-7
chiffres après la virgule.

Merci



Avatar
Anh Vu Tran
Bernard Koninckx a écrit:
Bonjour,

Tu peux toujours aller voir la javadoc de la classe abstraite NumberFormat.
Je ne l'ai encore jamais utilisée, mais elle sa compréhension te sera
peut-être utile.


Bonjour

J'avais déjà vu cette classe et utilisé la classe DecimalNumberFormat
qui hérite de cette classe, sans grand succès. Je n'ai pas de temps à
perdre sur des petits problèmes comme ça, je me suis écris une fonction
rapide (plus de l'algorithmique que java) :


public static String DoubleChaine(double d)
{
int d100 = (int) (d*100.0);
String entiere = Integer.toString(d100/100);
String sortie;

if (d100 % 100 == 0)
sortie = entiere + " ms";
else
{
String decimale = Integer.toString(d100 % 100);
while (decimale.length() < 2) decimale = "0" + decimale;
sortie = entiere + "," + decimale;
}
return sortie;
}

S'il y a une meilleure proposition...

Anh Vu

Avatar
Emmanuel Bourg
Utiliser une API toute faite j'appelle pas ça perdre du temps, au
contraire ! :) Il suffit d'écrire :

NumberFormat nf = new DecimalFormat("#.00");
String s = nf.format(123.456);

Emmanuel Bourg


Anh Vu Tran wrote:

Bernard Koninckx a écrit:

Bonjour,

Tu peux toujours aller voir la javadoc de la classe abstraite
NumberFormat.
Je ne l'ai encore jamais utilisée, mais elle sa compréhension te s era
peut-être utile.



Bonjour

J'avais déjà vu cette classe et utilisé la classe DecimalNumberFo rmat
qui hérite de cette classe, sans grand succès. Je n'ai pas de temps à
perdre sur des petits problèmes comme ça, je me suis écris une fo nction
rapide (plus de l'algorithmique que java) :


public static String DoubleChaine(double d)
{
int d100 = (int) (d*100.0);
String entiere = Integer.toString(d100/100);
String sortie;

if (d100 % 100 == 0)
sortie = entiere + " ms";
else
{
String decimale = Integer.toString(d100 % 100);
while (decimale.length() < 2) decimale = "0" + decimale;
sortie = entiere + "," + decimale;
}
return sortie;
}

S'il y a une meilleure proposition...

Anh Vu




Avatar
Anh Vu Tran
Emmanuel Bourg wrote:
Utiliser une API toute faite j'appelle pas ça perdre du temps, au
contraire ! :) Il suffit d'écrire :

NumberFormat nf = new DecimalFormat("#.00");
String s = nf.format(123.456);


Ok, on ne perd pas de temps à condition qu'on sache s'en servir ;-)
Merci pour le tuyau.

Anh Vu