-
Nombre zéro ?
Bonjour,
Voilà, j'effectue dans une classe, des opérations sur des double, et j'ai été étonné de trouver parmi les valeurs obtenues un "-0.0". Je me suis dit que c'était peut être une spécificité du Double, et j'ai essayé de même avec les floats, mais j'obtiens le même résultat. Je croyais à une approximation de la valeur qui est peut être en -0.00000000000000001, mais ça me semble malgré tout assez étrange, les opérations étant trés élémentaires (multiplication, soustraction, addition). Obtenir un "vrai" 0 n'est pas réellement mon but, mais je reste perplexe devant ce résultat. Si quelqu'un a des idées ou hypothèses pouvant éclaircir ce mystère ?
Merci d'avance :-)
-
Non c'est normal ca vient du fait que la mantisse est signee et que la norme de codage IEE machin chose autorise 0 a avoir les 2 signes. Les 2 valeurs peuvent donc exister.
Note que le test (+0 == -0) vaut true MAIS que d1.equals(d2) vaut false si d1 = +0 et d2 = -0 (ou inversemenent).
Voir la doc des classes Float et Double