Javascript Addition [Résolu]

Messages postés
31
Date d'inscription
dimanche 17 avril 2005
Dernière intervention
27 février 2006
- - Dernière réponse : hichamait
Messages postés
1
Date d'inscription
samedi 31 janvier 2009
Dernière intervention
1 février 2009
- 1 févr. 2009 à 12:12
Bonjour,

j'ai trouvé plein de sujet sur l'addition mais aucun sur mon problème !!

Alors le voici :

Pour effectuer une addition que j'ai pris d'une variable qui ne proviens pas d'un formulaire mais qui est passé par multiple addition !!

Je fais moi normalement pour ne pas me compliquer : ntotal += n1

Sa n'as pas marché alors j'ai essayé : ntotal = ntotal + n1

Le résultats que cela me donnait, à la place de l'additionné il m'as donns un ajout, je m'explique :

Ce que j'éspèrais :var ntotal 5, n1 3;
ntotal += n1 // Aurais du me donner 8

Mais sa me donne -->> 53, il a ajouté le chiffres à la place de l'additionner !


Que faire ??? Help me !!!
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
870
Date d'inscription
dimanche 26 décembre 2004
Dernière intervention
26 février 2008
3
Merci
Salut,
Essaie :
ntotal += eval(n1);
OU
ntotal += parseFloat(n1);
Maintenant ça devrais marcher.
Ton problème vient du fait que n1 contient une chaine de caractère au lieu d'un nombre. Il ne va donc pas faire une addition avec un nombre et une chaine de caractère mais une concaténation.
@++

Merci cs_algori 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_algori
Messages postés
280
Date d'inscription
samedi 4 juin 2005
Dernière intervention
28 avril 2006
3
Merci
Javascript ne fait pas vraiment de différence entre les variables STRING et les variables numériques.



a = 5



signifie aussi:



a = "5"



D'où si

b = 3



a + b = "53"

Merci Phil_Free 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Phil_Free
Messages postés
31
Date d'inscription
dimanche 17 avril 2005
Dernière intervention
27 février 2006
0
Merci
Mais de quoi cela vient-il ?? Je comprends pas ??
Commenter la réponse de cs_Dfx4
Messages postés
31
Date d'inscription
dimanche 17 avril 2005
Dernière intervention
27 février 2006
0
Merci
Merci, la réponse accépté vas de même pour algori !!
Commenter la réponse de cs_Dfx4
Messages postés
870
Date d'inscription
dimanche 26 décembre 2004
Dernière intervention
26 février 2008
0
Merci
Sans voir le code, difficile à dire. Je suppose que la variable n1 doit contenir une chaine de caractère, par exemple n1 = "45";
Il faut savoir que les opérateurs de calcul de Javascript ne permettent de calculer que des nombres, n1="45" n'est pas un nombre mais une chaine de caractère (en C++, la syntaxe est char lettre[] ). Il faut aussi savoir que l'opérateur d'addition pour un nombre a le même symbole que l'opérateur de concaténation de chaines de caractères.
Ainsi :
n1 = 3;
n2 = 2;
n3 = n1 + n2; //le résultat de l'addition est 5

Mais
n1 = 3;
n2 = "2"; //la variable contient une chaine de caractère
n3 = n1 + n2; //Attention, ce n'est plus une addition mais une concaténation, le résultat est "32".
En général, on utilise la fonction eval() pour transformer une chaine de caractère en nombre.
@++
Commenter la réponse de cs_algori
Messages postés
870
Date d'inscription
dimanche 26 décembre 2004
Dernière intervention
26 février 2008
0
Merci
Ah mince, j'étais en train d'écrire le message
Commenter la réponse de cs_algori
Messages postés
31
Date d'inscription
dimanche 17 avril 2005
Dernière intervention
27 février 2006
0
Merci
Lol !!



Enfaite mon variable proviens au début de prompt() !!
Commenter la réponse de cs_Dfx4
Messages postés
1
Date d'inscription
samedi 31 janvier 2009
Dernière intervention
1 février 2009
0
Merci
salut voila 1 exemple pour faire une addition et multiplication par la fonction  prompt :
<html>
<head>
</head>

<script language=javascript>
var a=[],b=[],c=[],n;
n=prompt("donner un nombre de calcul");
for(i=1;i<=n;i++)
a[i]=prompt("donner la "+i+" a");
for(i=1;i<=n;i++)
b[i]=prompt("donner la "+i+" b");
for(i=1;i<=n;i++)
c[i]=eval(a[i])+eval(b[i]);
for(i=1;i<=n;i++)
alert("la "+i+" somme est "+c[i]+" ");
for(i=1;i<=n;i++)
document.write(" la "+i+" somme est "+c[i]+"
");
</script>

</html>
et pour faire une + et * par exemple dans la ligne  c[i]=eval(a[i])+eval(b[i]); de programme tu peux ecrire :  c[i]=(eval(a[i])+eval(b[i]))*n;  ici on multiplie la somme par le nombre de calcul
j'espère que j'ai donné la réponse que tu cherches..
bonne chance
Commenter la réponse de hichamait

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.