Pourquoi ça marche ?

Pourquoi ça marche ? - Java - Programmation

Marsh Posté le 18-05-2009 à 10:32:42    

Je suis en train d'essayer de comprendre le fonctionnement des floating dans différents langages de programmation (principalement C et Java d'ailleurs).
 
En C, j'ai le code suivant:

Code :
  1. float value = 1.4;
  2. printf ("value is : %f\n", value);


 
Le programme affiche la valeur "value is 1.3999999762"
 
En java, de manière similaire j'ai écrit:

Code :
  1. float value = 1.4f;
  2. System.out.println ("Value is : " + value);


 
et là j'obtiens la valeur 1.4. Pouvez-vous s.v.p. me donner un lien qui expliquerait comment java traite la norme IEEE754 ? J'ai aussi ce genre de petites différences quand force les parenthèses dans une addition de trois éléments, comme par exemple:
 

Code :
  1. float value1 = 100.0f;
  2. float value2 = 0.05f;
  3. float value3 = 0.05f;
  4. System.out.println ("sum 1 : " + ((value1 + value2) + value3));
  5. System.out.println ("sum 2 : " + (value1 + (value2 + value3)));


 
C et Java ne donnent pas le même résultat pour la même expression, et la réponse de C me paraît plus logique (c'est-à-dire plus proche de ce que je croyais avoir compris).
 
D'avance merci pour votre aide et bonne journée!
 

Reply

Marsh Posté le 18-05-2009 à 10:32:42   

Reply

Sujets relatifs:

Leave a Replay

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