Maison >développement back-end >C++ >Quand l'égalité en virgule flottante est-elle acceptable ?
Égalité à virgule flottante : quand et pourquoi
Bien que cela soit généralement mal vu, il existe des cas où les comparaisons à virgule flottante peuvent être jugées acceptables .
Représentation exacte des nombres entiers
IEEE 754, la norme pour l'arithmétique à virgule flottante, garantit que les entiers (nombres entiers) dans une certaine plage sont représentés exactement dans format à virgule flottante. Cela signifie que des comparaisons impliquant des nombres entiers, y compris 0,0, peuvent être effectuées à l'aide de l'opérateur d'égalité (==).
Précautions concernant les valeurs calculées
Cependant, la prudence est de mise. lorsque vous travaillez avec des valeurs à virgule flottante dérivées de calculs. L'attribution d'un nombre entier à une variable à virgule flottante est sûre, mais l'exécution d'opérations arithmétiques sur des nombres à virgule flottante peut introduire des erreurs d'arrondi. Par conséquent, les comparaisons d'égalité entre les valeurs calculées doivent être évitées.
Litéraux constants
Lors de la comparaison d'une variable avec un littéral constant, il est crucial de s'assurer que le littéral est défini comme une double constante (par exemple, 3,14 L) pour maintenir une précision de double précision.
Exemple
Dans l'extrait de code fourni, la const statique BAR est définie comme une double . Si d est également un double, alors la comparaison d == BAR retournera toujours vrai en supposant que d et BAR représentent des nombres entiers dans la plage valide pour la représentation à virgule flottante.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!