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

Contributions JavaScript / AJAX Discussion :

Syntaxe JavaScript | (2) Pourquoi mes deux valeurs se concatènent au lieu de s'additionner ? [Fait]


Sujet :

Contributions JavaScript / AJAX

  1. #1
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 4
    Points : 34
    Points
    34
    Par défaut Syntaxe JavaScript | (2) Pourquoi mes deux valeurs se concatènent au lieu de s'additionner ?
    Syntaxe JavaScript | (2) Pourquoi mes deux valeurs se concatènent au lieu de s'additionner ?
    Tout semble correct.

    Eventuellement
    , corrections mineures, simplification :

    En JavaScript, le "+" est le symbole de concaténation.
    Pour additionner il faut utiliser parseInt().

    Exemple :
    variable1 = document.formulaire.champs1.value; /* '12' */
    variable2 = document.formulaire.champs2.value; /* '20' */

    total_concatenation = variable1 + variable2; /* '1220' (chaîne) */
    total_addition = parseInt(variable1,10) + parseInt(variable2,10); /* 32 (entier) */

    /* Le 2e paramètre facultatif de parseInt correspond au système de numération : 10 signifie base 10
    Source : http://www.w3schools.com/jsref/jsref_parseint.asp */
    Il s'agit de la 2e "question" de la section Syntaxe JavaScript
    -faits : 2
    -encore à faire (courant janvier) : 1,3,4,5,6,7,8,9,10,11,12,13,14,15,16

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    3 remarques :
    • Pour additionner il faut utiliser parseInt().
      Je serais moins catégorique : parseFloat()existe également... parseInt()ne retournera pas le bon résultat si les valeurs des champs sont des nombres à virgule.
    • Code : Sélectionner tout - Visualiser dans une fenêtre à part
      document.formulaire.champs1.value;
      Cette syntaxe pour accéder à un objet d'un formulaire est toujours valable mais trop lourde, il faut mieux la remplacer par un document.getElementById().
    • les variables ne sont pas déclarées



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function addition()
    {
    var total_addition, total_concatenation;
     
    var variable1 = document.getElementById("valeur1").value; 
    var variable2 = document.getElementById("valeur2").value;
     
    total_concatenation = variable1 + variable2; 
    total_addition = parseFloat(variable1) + parseFloat(variable2); 
     
    alert(total_concatenation);
    alert(total_addition);
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form>
    <input id="valeur1" type="text"/>
    <br/>
    <input id="valeur2" type="text" />
    <br/>
    <input type="button" onclick="addition()" value="Addition" />
    </form>

  3. #3
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 4
    Points : 34
    Points
    34
    Par défaut
    Merci pour ta correction.

    -Petites modifs pour pouvoir essayer ton code tel quel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function addition()
    {
    var total_addition, total_concatenation;
     
    var variable1 = document.getElementById("valeur1").value; 
    var variable2 = document.getElementById("valeur2").value;
     
    total_concatenation = variable1 + variable2; 
    total_addition = parseFloat(variable1) + parseFloat(variable2); 
     
    alert("Concaténation : " + total_concatenation);
    alert("Addition : " + total_addition);
    }
    - Avec le formulaire que tu proposes, on peut en effet s'attendre à ce que l'utilisateur rentre un nombre à virgule.
    C'est le point qu'il faudra utiliser : l'utilisateur écrira par exemple 2.3 (et non pas 2,3).

Discussions similaires

  1. [phpMyAdmin] Pourquoi mes valeurs ne saffichent pas quand l'id=1
    Par geeka dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 27/04/2015, 12h08
  2. Comparer deux valeurs avec javascript (td caché et zone de texte)
    Par beegees dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/01/2009, 12h57
  3. [JLabel][HTML]pourquoi mes images s'affiche pas?!
    Par La Truffe dans le forum Composants
    Réponses: 8
    Dernier message: 29/04/2004, 11h23
  4. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58
  5. Réponses: 5
    Dernier message: 25/11/2003, 10h02

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