Un vérificateur (de type double) array est obtenu à partir d'un gsl_vector de la manière suivante.Double comparaison en C
for (i=0; i<M; i++)
{
checker[i] = (double)gsl_vector_get(check, i);
printf(" %f", checker[i]);
}
matrice vérificateur a [ 3.000000 -3.000000 -11.000000 -5.000000 ]
éléments après l'opération ci-dessus (à partir de la sortie du programme ci-dessus).
Je suis confronté à un problème étrange maintenant.
for (i=0; i<M; i++)
{
printf("checker: %f\n", checker[i]);
if(checker[0] == 3.00)
{
printf("Inside If: %f\n", checker[i]);
}
}
Les sorties de code ci-dessus
checker: 3.000000
checker: -3.000000
checker: -11.000000
checker: -5.000000
Comme on le voit, la boucle à l'intérieur de if
for
ne sont pas exécutées. Quel pourrait être le problème?
Modifier: Le problème ci-dessus est allé directement quand je copiais [ 3.000000 -3.000000 -11.000000 -5.000000 ]
dans le tableau de vérificateur au lieu du gsl_vector_get(check,i)
. La valeur de vérification provient de la fonction dgmev
où une matrice et un vecteur sont multipliés.
Merci
J'espère que le dupe va résoudre votre problème, sinon, s'il vous plaît revenir. Je vous remercie. –
Note: vous avez aussi une faute de frappe - votre condition 'if' vérifie' checker [0] 'au lieu de' checker [i] '. –
@ michel-slm: Ce n'était pas une faute de frappe, je vérifiais juste le premier élément. – re3el