Exo simple qui pose pblm en javascript

vince33export Messages postés 9 Statut Membre -  
 dudule14 -
Salut a tous.
En fait je révise le JavaScript language que j essaie de comprendre mais qui me pose d'énorme probléme.Les poly qu'on nous fourni en cours sont bad et j dois avoir le cerveau lent.lol
Mais la je dois écrire un programme JavaScript qui lit et additionne n nombre.

<html>
<head>
<title>Calcul la somme de n nombre</title>
<script language='JavaScript'>
var nbval = prompt('entrer le nombre de valeur : ');
var i=0;
var r=0;
var x=0;
while(i != nbval)
{
x=prompt('entrer un nombre : ');
i=i+1;
r=(r+x);
}
alert('la somme des n nombres est : '+r);
</script>
</head>
<body>

</body>
</html>
j ai fait sa mais le probléme que j essaie de résoudre, c'est qu'il ne me les aditionne pas, il les mets juste cote à cote.
Help me please...
Merci d'avance.

5 réponses

  1. DaNot Messages postés 221 Statut Membre 163
     
    Salut,

    La somme (fontion +) représente ici une concatenation car les valeurs saisie sont sous forme de chaine de caracteres (string).
    Essayes avec r = r + x.valueOf( );

    Un bon site regroupant mal de choses sur Javascript :
    http://www.toutjavascript.com/

    DaNot
    un Libre ouvert à la source...
    0
  2. dje-dje Messages postés 10538 Date d'inscription   Statut Modérateur Dernière intervention   759
     
    Quand tu fais:
    x=prompt('entrer un nombre : ');
    -> Je crois que x devient chaine de caractere dans l'operation...
    Du coup, quand tu "ajoutes" x à r, il concatenes les chaines.

    Dans la ligne ou tu additionnes r= (r+x) rajoutes une multiplication par 1:
    r=(r+x)*1

    a+
    dje-dje

    Il y a 10 types de personne dans le monde,
    ceux qui comprennent le binaire et les autres
    0
  3. Nico
     
    Yop,

    fait un parseInt pour transformer en entier :

    <html>
    <head>
    <title>Calcul la somme de n nombre</title>
    <script language='JavaScript'>
    var nbval = parseInt(prompt('entrer le nombre de valeur : '));
    var i=0;
    var r=0;
    var x=0;
    while(i != nbval)
    {
    x=parseInt(prompt('entrer un nombre : '));
    i=i+1;
    r=(r+x);
    }
    alert('la somme des n nombres est : '+r);
    </script>
    </head>
    <body>

    </body>
    </html>
    0
  4. vince33export Messages postés 9 Statut Membre
     
    merci a vous tous ...
    je vais aller visite l'adresse DaNot, mais au niveau des fonctions j ai pas encore le niveau à mon avis, mais j vais regarder sa de plus près.
    j avais pas pensé au parsInt ni a la multiplication par 1 mais ce sont de trés bonne idée.
    Merci beaucoup pour votre aide précieuse.
    Je vais essayer de réglé le probléme desuite.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dudule14
     
    SOLUTION:

    si data = 300 en string

    temp = parseInt(data);
    temp = temp + 1;

    temp = 301 en chiffre
    0