Maison >développement back-end >C++ >Comment puis-je comparer avec précision les valeurs décimales en C# lors de l'utilisation de nombres à virgule flottante ?
Lors de l'utilisation de variables à virgule flottante double précision en C#, les développeurs rencontrent souvent des résultats inattendus lors de comparaisons impliquant des valeurs décimales. L’un de ces problèmes découle d’une propriété fondamentale de la représentation en virgule flottante.
en C# utilise des fractions binaires au lieu de fractions décimales pour stocker des valeurs à virgule flottante. Cette représentation a ses limites, et certaines valeurs décimales ne peuvent pas être stockées exactement. Par exemple, le nombre 0,1 ne peut pas être représenté exactement comme une fraction binaire. Il est stocké à titre d’approximation, ce qui donne des valeurs légèrement différentes. double
au lieu de decimal
. double
Stockez les nombres en utilisant la notation décimale, permettant de représenter exactement des valeurs telles que 0,1. Cela élimine les problèmes rencontrés lors de la comparaison des valeurs decimal
. double
Les valeurs décimales telles que 0,1 ont des représentations binaires non répétitives et sont donc difficiles à stocker avec précision dans les systèmes base 2. Par conséquent, l'approximation binaire de 0,1 stockée dans la variable
peut différer légèrement de la valeur réelle. double
, où la valeur attendue de 0,1 peut ne pas correspondre à la valeur stockée. L'utilisation du type de données if
évite ces problèmes en garantissant un stockage et une comparaison précis des valeurs décimales. decimal
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!