Affichage de la mention

Résolu
rudybiss Messages postés 60 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 20 juillet 2009 - 15 févr. 2009 à 22:14
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 - 15 févr. 2009 à 23:36
Bonjour!

Je développe une application sur la gestion des notes en php.Tout marche bien à l'exception de l'affichage de la mention.En fait,il n'arrive pas '(je pense) à comparer la moyenne pour l'affichage de la mention.
Voila ce que j'ai fait:

if($moyenne=='10' and $moyenne<='11,99') {
$mention="Passable";
}
 else if($moyenne=='12' and $moyenne<='13,99'){
 $mention="Assez-Bien";
 }
 else if($moyenne=='14' and $moyenne<='15,99'){
 $mention="Bien";
 }
 else if($moyenne<'10'){
   $mention="";
 }
 else if($moyenne>='16'){
   $mention="Tres Bien";
 }

La moyenne s'affiche au format 00,00 donc deux chiffres après la virgule.Alors je me demande si j'ai faussé quelque chose dans mon code.

Merci pour votre aide et éclaircissements!

6 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
15 févr. 2009 à 23:05
En virant les == pour les remplacer par le >= ce serais une bonne avancée. Forcément s'il faux que le moyenne soit, dans on exemple, égale a 12 et inférieur a 13.99, avec 12.5 ce sera faux.

Autre remarque, tester le cas où la moyenne est inférieur a 10 ne sert a rien.
3
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
15 févr. 2009 à 22:37
Salut,

Plusieurs remarque :
 - Le séparateur décimal est le point et non la virgule
 - Si tu met le nombre entre quotes c'est une chaîne de caractère. D'accord PHP est très souple a ce niveau là mais quand même ...
 - elseif existe, pas besoin de faire else if.
 - Merci printf() pour afficher ta chaîne bien formatée (regarde le manuel pour savoir quoi mettre comme format).
0
rudybiss Messages postés 60 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 20 juillet 2009
15 févr. 2009 à 22:52
Re
En enlevant la virgule en remplaçant par un point et j'ai aussi enlevé les quotes,rien à faire il m'affiche rien.J'ai l'impression qu'il ne compare pas le nombre avec virgule car si par exemple la moyenne =12 il m'affiche "Assez bien" mais si c'est 12.50 il m'affiche rien.
Franchement je ne comprends plus rien!
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
15 févr. 2009 à 23:08
Ho j'oubliais, tu fait quoi des valeurs situées, par exemple, entre 13.99 et 14 ? Si on a des opérateur de comparaison strict ce n'est pas pour rien, là tu as une (théorique) infinités de valeurs non gérées.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rudybiss Messages postés 60 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 20 juillet 2009
15 févr. 2009 à 23:20
Merci!
Ca marche comme je veux!Le problème,il fallait comme tu as dis virer le == et mettre >= .

Merci encore et bonne soirée!!
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
15 févr. 2009 à 23:36
De rien ;)

Allez, pour la route :
if($moyenne >= 10 && $moyenne < 12)
  $mention='Passable';
elseif($moyenne >= 12 && $moyenne < 14)
  $mention='Assez-Bien';
elseif($moyenne >= 14 && $moyenne < 16)
  $mention='Bien';
elseif($moyenne >= 16)
  $mention='Tres Bien';
printf("Note : %01.2f/20 %s\n", $moyenne, $mention);
0
Rejoignez-nous