IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Evaluation de condition incorrecte


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut Evaluation de condition incorrecte
    Bonjour,

    Je suis très perplexe : je passe, à partir d'une fonction Ajax, deux paramètres à un script Php qui doit me retourner une string.

    Mes paramètres passés : $_POST['age'] qui vaut 13 et $_POST['score'] qui vaut 15.7.

    Voici mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?php
    header('Content-Type: text/html; charset=utf-8');
     
    if(!empty($_POST['score']) && !empty($_POST['age']))
     {
      $ageP = $_POST['age'];
      $score = $_POST['score'];
     }
     
    If($ageP < 30)
     {
      $moyenne = 15.9;
      $ecart = 0.2;
     }
    elseIf($ageP < 50)
     {
      $moyenne = 15.9;
      $ecart = 0.6;
     }
    ElseIf($ageP < 65)
     {
      $moyenne = 15.7;
      $ecart = 0.7;
     }
    ElseIf($ageP < 75)
     {
      $moyenne = 15.7;
      $ecart = 0.5;
     }
    Else
     {
      $moyenne = 15.8;
      $ecart = 0.5;
     }
     
    if($score > $moyenne + 2 * $ecart)
     $comparaison =  "nettement supérieur aux normes (" . $moyenne . " +- " . $ecart . ")";
    ElseIf($score > $moyenne + $ecart)
     $comparaison =  "supérieur aux normes (" . $moyenne . " +- " . $ecart . ")";
    ElseIf($score >= $moyenne - $ecart)
     $comparaison =  "dans les normes (" . $moyenne . " +- " . $ecart . ")";
    ElseIf($score + 2 * $ecart < $moyenne)
     $comparaison = "inférieur aux normes (" . $moyenne . " +- " . $ecart . ")";
    Else
     $comparaison = "faible (" . $moyenne . " +- " . $ecart . ")";
     
    echo "<input type='text' name='compReconnCorr' id='compReconnCorr' value='$comparaison' size='40' readonly>";
     
    ?>
    Avec les paramèters précités, $comparaison vaut "faible (15.9 +- 0.2)" alors qu'elle devrait valoir "dans les normes (15.9 +- 0.2)". Or, si $_POST['score'] vaut 15.8, $comparaison est affectée de manière correcte.

    Quelqu'un aurait une idée?

    Merci d'avance...

  2. #2
    Inscrit
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Points : 273
    Points
    273
    Par défaut
    C'est due aux imprécisions des calculs flottants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var_dump (0.7 == 0.9 - 0.2);
    // résulat : bool(true)
    var_dump (10.7 == 10.9 - 0.2);
    // résulat : bool(false)

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Merci beaucoup pour ton intérêt.

    Aurais-tu une idée de la manière dont il faudrait que je procède pour résoudre ce genre de problème?

    Merci d'avance

Discussions similaires

  1. [E-07] Condition incorrecte
    Par babylone_59 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 26/09/2008, 13h17
  2. Evaluation des conditions
    Par Papy214 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 30/04/2008, 15h59
  3. Evaluation de conditions multiples
    Par Domi2 dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/12/2007, 12h07
  4. Evaluation de condition
    Par alex436331 dans le forum Langage
    Réponses: 12
    Dernier message: 23/05/2007, 14h58
  5. Validation de plusieurs conditions dans un EVALUATE
    Par apokrif dans le forum Cobol
    Réponses: 4
    Dernier message: 29/03/2007, 23h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo