Les nombres à virgule flottante IEEE ont un bit assigné pour indiquer le signe, ce qui signifie que vous pouvez techniquement avoir des représentations binaires différentes de zéro (+0 et -0). Y a-t-il une opération arithmétique que je pourrais faire, par exemple en C, qui donnerait une valeur de zéro flottante négative?
Cette question est inspirée d'une autre qui remettait en question la possibilité de comparer en toute sécurité 0.0f
en utilisant ==
, et je me demandais en outre s'il existe d'autres façons de représenter zéro qui pourraient provoquer la rupture de float1 == 0.0f
pour des valeurs apparemment parfaitement égales.
[Edit] S'il vous plaît, ne commentez pas sur la sécurité de la comparaison des flottants pour l'égalité! Je n'essaie pas d'ajouter à ce seau débordant de questions en double.