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

JavaScript Discussion :

Fonction qui totalise des nombres mais met 1 au lieu de 1.5


Sujet :

JavaScript

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Fonction qui totalise des nombres mais met 1 au lieu de 1.5
    Bonjour tout le monde,

    J'ai un problème et ne trouve pas la solution à ce dernier.

    Les étudiants de notre fac réserve certains cours via le web, pour chaque cours, un crédit correspond.

    Le problème est que si le cours vaut 1,5, le total (qui reprend le total de chaque crédit pour chaque cours) ajoute 1.

    Voici le code qui fait le total :

    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
    	<script type="text/javascript" language="javascript">
    function somme() {
    		/** Variables permettant la récupération des valeurs */
    		var th_ects1,th_ects2,th_ects3,th_ects4;
    		var tp_etcs1,tp_etcs2,tp_etcs3,tp_etcs4;
    		var total;  // Correspond à ton champ txtTotalECTS
     
    		// Ici on récupère tous nos champs 
    		th_ects1 = (document.getElementById("ECTSCI1TH").value != "" && document.getElementById("ECTSCI1TH").value != "undefined")?parseInt(document.getElementById("ECTSCI1TH").value):0;
    		th_ects2 = (document.getElementById("ECTSCI2TH").value != "" && document.getElementById("ECTSCI2TH").value != "undefined")?parseInt(document.getElementById("ECTSCI2TH").value):0;
    		th_ects3 = (document.getElementById("ECTSCI3TH").value != "" && document.getElementById("ECTSCI3TH").value != "undefined")?parseInt(document.getElementById("ECTSCI3TH").value):0;
    		th_ects4 = (document.getElementById("ECTSCI4TH").value != "" && document.getElementById("ECTSCI4TH").value != "undefined")?parseInt(document.getElementById("ECTSCI4TH").value):0;
    		tp_etcs1 = (document.getElementById("ECTSCI1TP").value != "" && document.getElementById("ECTSCI1TP").value != "undefined")?parseInt(document.getElementById("ECTSCI1TP").value):0;
    		tp_etcs2 = (document.getElementById("ECTSCI2TP").value != "" && document.getElementById("ECTSCI2TP").value != "undefined")?parseInt(document.getElementById("ECTSCI2TP").value):0;
    		tp_etcs3 = (document.getElementById("ECTSCI3TP").value != "" && document.getElementById("ECTSCI3TP").value != "undefined")?parseInt(document.getElementById("ECTSCI3TP").value):0;
    		tp_etcs4 = (document.getElementById("ECTSCI4TP").value != "" && document.getElementById("ECTSCI4TP").value != "undefined")?parseInt(document.getElementById("ECTSCI4TP").value):0;
     
    		total = document.getElementById("txtTotalECTS");
    		total.value = th_ects1+th_ects2+th_ects3+th_ects4+tp_etcs1+tp_etcs2+tp_etcs3+tp_etcs4;
     
    		/*if 	(total.value > CreditOK_javascript)
     
    		{
    		alert('Vous dépassez le nombre d ECTS autorisés !')
     
    		}				*/
     
     
     
    	}
    </script>

    Voyez-vous pourquoi le 1,5 se ajoute 1 et non 1,5 ? j'utiise des points 1.5 et non 1,5.

    Voici encore une partie du code :

    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
    		function maj_checkbox() {
    			//TABLEAU D'ECTS
    			//c'est ici qu'on change la valeur des ECTS !!!!!!!!!!!!
    			//0 correspond à choississez une matière
    		var credits = new Array(0,0/*BIOC 008*/,4/*BIOL-J-101*/,3/*BIOL-J-102*/,1.5/*BIOL-J-201*/,4/*BIOL-J-301*/);	// Tableau des crédits ECTS. On retrouve 21 valeur ce qui correspond au nombre d'option disponible dans ton select. A toi de choisir la valeur des crédits ECTS en fonction de la matière. J'ai fais simple pour l'exemple mais les nombres peuvent très bien changer ;)
    			cCI1TH = document.getElementById('cbCI1TH');	// On récupère la checkbox qui a pour id="checkboxECTS"  (correspond à TH)
    			cCI1TH_val = document.getElementById('ECTSCI1TH');	// On récupère le input text à coté de la checkbox
    			s = document.getElementById('select4');	
    			if(cCI1TH.checked) {		// On test si la checkbox est coché
    				cCI1TH_val.value = credits[s.options[s.selectedIndex].value];	// Puis on met à jour le input text en récupèrant la valeur de la matière selectionné et en allant cherché le nombre de crédits ECTS dans le tableau credits
    				//alert(cCI1TH_val.value);
    				ECTSCITH = cCI1TH_val.value;
     
    				//alert(ECTSCITH);
    				document.form1.txtTotalECTS.value = ECTSCITH.value;
     
    				document.form1.hfCI1TH.value=cCI1TH_val.value;
     
    			} else {
    				cCI1TH_val.value = "";	// Si la checkbox est décoché on met une chaine vide pour les crédits ECTS.
    			}
    			somme();		
    					}
    	</script>
    La variable ne retient que la partie entière, est-il possible de tenir toute la partie du nombre, dois-je déclarer en flaot ?

    Merci d'avance pour votre indispensable aide.

    beegees

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par beegees
    [B]La variable ne retient que la partie entière, est-il possible de tenir toute la partie du nombre, dois-je déclarer en flaot ?
    Avec un parseInt, c'est pas très étonnant qu'il te renvoi un entier. Essaye avec un parseFloat

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour Denisc,

    Merci beaucoup pour ta réponse.

    problème résolu

    A bientôt
    beegees

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction qui définie les nombres des chiffres
    Par aliassaf dans le forum MATLAB
    Réponses: 3
    Dernier message: 02/04/2009, 01h38
  2. Fonction qui compte le nombre de jours ouvrés par mois
    Par griese dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/07/2006, 15h32
  3. Creer des fonctions qui émule des fonctions Access
    Par steelidol dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/05/2006, 18h42
  4. Fonction qui marche sous FF mais pas IE
    Par Oluha dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/01/2006, 14h07

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