String to float

String to float - Java - Programmation

Marsh Posté le 12-04-2011 à 17:19:47    

Bonjour,
 
Voici mon problème : je récupère une chaine de caractère du style "16903170.616624", donc je la converti en float et j'effectue une soustraction comme suit :
 

Code :
  1. float gmts1 = Float.valueOf(maString).floatValue();
  2. float gmts2 = Float.valueOf(maString).floatValue();
  3. float gmtsResult = gmts2 - gmts1;



Exemple :
 
gmts1 = 16903170.616624
gmts2 = 16903171.626382
 
Donc je devrais avoir gmtsResult = 1.009758
Au lieu de ça j'ai gmtsResult = 2.0
 

 
Auriez-vous une idée pour éviter l'arrondi?
 
Merci d'avance


---------------

Reply

Marsh Posté le 12-04-2011 à 17:19:47   

Reply

Marsh Posté le 12-04-2011 à 17:24:40    

Probablement un depassement de capacite, essaie avec des doubles ...

Reply

Marsh Posté le 12-04-2011 à 17:51:16    

mr simon a écrit :

Probablement un depassement de capacite, essaie avec des doubles ...


 
 
Merci ça fonctionne.
Maintenant lorsque j'affiche un de mes doubles j'ai ça :  2.3998794E-24 !!
 
Comment faire pour éviter le E-24 tout en gardant la bonne valeur (pas d'arrondi, pas de troncature ...)


---------------

Reply

Marsh Posté le 12-04-2011 à 18:22:25    

Regarde du cote de DecimalFormat

Reply

Marsh Posté le 12-04-2011 à 19:46:19    

mr simon a écrit :

Regarde du cote de DecimalFormat


 
 
Merci !
 
Je vais tester !


---------------

Reply

Marsh Posté le 13-04-2011 à 08:57:28    

selon ton besoin en precision tu peux lorgner aussi du coté de BigDecimal
ca tombe bien il y a un constructeur avec String
ie :  
BigDecimal gmts1 = new BigDecimal(maString1);
BigDecimal gmts2 = new BigDecimal(maString2);
 
apres :
http://download.oracle.com/javase/ [...] Context%29
 
genre :
BigDecimal result = new BigDecimal();
result = gmts1.substract(gmts2);


Message édité par pop-pan le 13-04-2011 à 09:00:08

---------------
[VDS] rail vesa, bras ecran, support TV / [ACH] des machins
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed