Le code suivant en C# ne fonctionne pas :
int iValue = 0;
double dValue = 0.0;
bool isEqual = iValue.Equals(dValue);
La question est donc la suivante : quelle est la meilleure façon de comparer Double et Int ?
Le code suivant en C# ne fonctionne pas :
int iValue = 0;
double dValue = 0.0;
bool isEqual = iValue.Equals(dValue);
La question est donc la suivante : quelle est la meilleure façon de comparer Double et Int ?
Parce que Epsilon définit l'expression minimale d'une valeur positive dont l'étendue est proche de zéro, la marge de différence entre deux valeurs similaires valeurs similaires doit être supérieure à Epsilon. Généralement, elle est plusieurs fois supérieure à Epsilon. Pour cette raison, nous vous recommandons de ne pas d'utiliser Epsilon lorsque vous comparez des valeurs doubles pour l'égalité.
Si vous n'avez pas effectué de calculs à l'aide du double, vous pouvez simplement utiliser ==
. C'est parce qu'un nombre entier peut être représenté par un double exactement (seulement entre -2^53 et 2^53).
int iValue = 0;
double dValue = 0.0;
bool isEqual = iValue == dValue;
Cela renvoie à vrai.
La raison pour laquelle Equals
ne fonctionne pas, c'est que le ==
convertira automatiquement l'entier en double avant la comparaison, tandis que l'opérateur Equals
ne le fera pas et échouera donc.
Cette réponse contient plus d'informations : https://stackoverflow.com/a/52525223/15714398
Si vous avez effectué des calculs en utilisant le double, les jeux sont faits et vous devez faire une analyse du nombre de chiffres significatifs dans vos calculs.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.