Problème de récupération de valeur "fichier.csv"

Signaler
Messages postés
12
Date d'inscription
mercredi 6 juillet 2011
Statut
Membre
Dernière intervention
1 août 2011
-
Messages postés
15096
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
-
Bonjour

J'ai écrit une fonction qui parcours un fichier.csv, retrouve les 2 valeurs que je lui donner et renvoi 2 valeurs correspondantes. Ensuite je fais une différence des 2 valeurs. Sauf que je reçois à la place une valeure éronée.
Si quelqu'un pourrais me dire ou est mon erreur ca serait simpa

Merci

double Window::calculs()
{
    DV=0;

    QFile file("C:/Utilisateurs/Rizkallah/Bureau/desmune/Logiciel/valeurs.csv");
    if (!file.open(QFile::ReadOnly))
    {
       // QMessageBox::information(this, " Erreur ", "Fichier .csv non trouvé, verifier code logiciel");
        return 0;

    }

    QTextStream stream(&file);
    while(!stream.atEnd())
    {
            // On récupère ligne par ligne le fichier
            QString ligne = stream.readLine();
            QStringList liste = ligne.split(";");

          valeur1 = liste.at(0).toDouble();
          valeur2 = liste.at(1).toDouble();

            if(valeur1 valcote && valeur3 valcote1)

                    mavaleur=valeur2 ;
                    mavaleur2=valeur4 ;

            break;
    }

    DV=mavaleur2-mavaleur ;

    return DV;
    return mavaleur;
    return mavaleur2;
}

1 réponse

Messages postés
15096
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
97
Hello,
return DV;
return mavaleur;
return mavaleur2;

Comme je te l'ai déjà dit, ce code est foireux: tes 2 derniers returns ne seront jamais exécutés.

De plus, il ne faut pas tester l'égalité entre 2 double mais voir si leur différence est proche de zéro: ceci à cause de problème d'arrondi, précision machine,...
Donc, plutôt faire ceci:
if (abs(valeur1 - valcote) < 1e-6)
{...}


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...