Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4995 connectés 

 


Dernière réponse
Sujet : [Java] afficher seulement 3 chiffres apres la virgule...
Taz Joli up.
RTFM printf

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Taz Joli up.
RTFM printf
_alf le truc sympa c ke  
 
return  ((double)(Math.round(d*100))) / 100.0;
ca marche impeccable
 
alors qu'en mettant des 1000 au lieu des 100 ben ca me fout des 0 "parasites"
_alf comme dit j'ai teste de 3 manieres differentes :
 
int i = (int)(d*1000);
double r = (double)i / 1000;
return r;
--> resultat : un quatrieme chiffre qui traine desfois derriere
 
java.text.DecimalFormat form = new java.text.DecimalFormat( "0.000" );
try { return form.parse(form.format(d)); }
catch ( Exception e ) {}
--> resultat : idem
 
return (new Double((""+d).substring(0, 4))).doubleValue();
--> resultat : faux quand nombre tres petits (avec de E^-x)
youdontcare ou sinon : double d = (int(d*1000))/1000;
 
edit : bon apparemment ça marche pas en java :D
edit2 : quoique tu peux transformer ce nombre résultant en string, analyser la string et couper ce qu'il reste après les trois chiffres de la partie décimale.

 

[edtdd]--Message édité par youdontcare--[/edtdd]

_alf ok donc autant pour moi ca m'apprendra à être clair : le problème vient principalement du fait que j'arrive quelquefois à des valeurs extremement petites du style 1.23456789E-4 (notez bien le E a la fin) ce qui fait qu'en castant ce double en string et en faisant un substring ben c me renvoie un 1.234 alors que c'est pas ca du tout... j'ai aussi essaye en multipliant le double en question par 1000 puis en le castant en int pour le rediviser par 1000 (c totalement nimp mais chuis a cours d'idees) mais la le pb c que quelquefois il reste un 4eme chiffre apres la virgule (qui est un 0 mais pas moyen de le virer "proprement" )... j'ai aussi essaye avec la classe decimalformat qui me fait exactement les mêmes erreurs en sortie  :(

 

[edtdd]--Message édité par _aLF--[/edtdd]

Tricky bah maitre_mulot à raison...fo mettre ton double dans un string ou un stringbuffer.....apres tu fait une recherche sur le "."  ou "," et tu extrais ton chiffre avec un substring(0,indexVirgule+3)...ou un truc  du genre....fo voir mais sa devrais etre un truc comme sa ;)
 
A++
maitre_mulot euh non en fait c po bien car tu peux po savoir a l'avance combien de carac fera ton chiff avec 3 chiff apres la virgule
desole
maitre_mulot si c pour affichage, tu mets ton double dans un String et apres tu eneleves les caracteres que tu veux po.
_alf ... pour un double c possible ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)