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 :
- float value = 1.4;
- 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 :
- float value = 1.4f;
- 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 :
- float value1 = 100.0f;
- float value2 = 0.05f;
- float value3 = 0.05f;
- System.out.println ("sum 1 : " + ((value1 + value2) + value3));
- 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!