Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1272 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  adition en javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

adition en javascript

n°912184
hyptos
Posté le 01-12-2004 à 16:13:14  profilanswer
 

Salut, j'ai le code suivant, quand je met c = a-b;, ça me fait 22-5=17 et quand je fait c = a+b; ça me donne 22+5=225.
 
Comment je dois faire pour faire une addition normale ?
 

Code :
  1. <SCRIPT LANGUAGE="JavaScript">
  2. <!-- Begin
  3. function calc1(form) {
  4. a = form.a.value/100;
  5. b = a*form.b.value;
  6. form.total1.value = b;
  7. }
  8. function calc2(form) {
  9. a = form.c.value;
  10. b = form.d.value;
  11. c = a-b;
  12. d = c*1;
  13. form.total2.value = d;
  14. }
  15. //  End -->
  16. </script>
  17. <form name="form1">
  18. <input type="text" name="a" size=5> <input type="text" name="b" size=5><input type="text" name="total1" size=5 maxlength=40>
  19. <input type="button" value="Calculate" onClick="calc1(this.form)"><input type="text" name="c" size=5><input type="text" name="d" size=5>
  20. <input type="text" name="total2" size=5>
  21. <input type="button" value="Calculate" onClick="calc2(this.form)"></td>
  22. </form>


Message édité par hyptos le 02-12-2004 à 16:01:23
mood
Publicité
Posté le 01-12-2004 à 16:13:14  profilanswer
 

n°912255
swgreedo
Posté le 01-12-2004 à 17:09:21  profilanswer
 

Salut,
Les valeurs de champs sont des String. Il est donc normal que "22" + "5" fasse "225".
En faisant parseInt(a) + parseInt(b) tu obtiendras le bon résultat (conversion a la volée en integer). Je te recommande de faire la même chose pour la soustraction, c'est plus carré...

n°912402
hyptos
Posté le 01-12-2004 à 19:56:31  profilanswer
 

Parfait ça marche génial, j'ai fait ça
 

Code :
  1. function calc2(form) {
  2. a = form.c.value;
  3. b = form.d.value;
  4. c = form.e.value;
  5. d = parseInt(a)+parseInt(b)+parseInt(c)
  6. form.total2.value = d;
  7. }


 
Mais j'ai un autre problème maintenant car si un champs est vide, le champ s total2 me donne la valeur "NaN"


Message édité par hyptos le 02-12-2004 à 16:01:10
n°912688
bob007
Posté le 02-12-2004 à 09:29:28  profilanswer
 

Not a Number!
Test avant! :D

n°912714
swgreedo
Posté le 02-12-2004 à 10:16:43  profilanswer
 

http://www.toutjavascript.com/refe [...] parent=210
Sinon tu peux aussi tester que le champ est vide...

n°912934
hyptos
Posté le 02-12-2004 à 15:02:25  profilanswer
 

J'avoue ne pas être un génie en javascript, si je fais le test avec isNaN, comment je gère le resultats ?
 
J'ai essayé ça, à marche pas, je vois pas trop comment l'utilise.
 

Code :
  1. function calc2(form) {
  2. a = form.c.value;
  3. b = form.d.value;
  4. c = form.e.value;
  5. a = isNaN(form.c.value)
  6. b = isNaN(form.d.value)
  7. c = isNaN(form.e.value)
  8. d = parseInt(a)+parseInt(b)+parseInt(c)
  9. form.total2.value = d;
  10. }


Message édité par hyptos le 02-12-2004 à 16:00:58
n°912956
esrevni
à contrario
Posté le 02-12-2004 à 15:33:10  profilanswer
 

faut que tu testes tes valeurs avant de faire le calcul. la fonction isNaN() renvoie un boolean, il me semble.

n°912966
hyptos
Posté le 02-12-2004 à 15:41:00  profilanswer
 

Je voudrais bien tester mais je ne sais pas comment faire, je suis néophite dans ce genre de programmation.
 
Si pouviez me donner un peu plus de détails, ça m'aiderai beaucoup
 
NB: Je cherche ce code pour améliorer un logiciel libre http://www.phppointofsale.com/, pour le php c'est ok mais pour le javascript je crains à mort.
 
Donc si vous m'aidez, vous aidez les logiciels libre :)


Message édité par hyptos le 02-12-2004 à 15:42:50
n°912972
swgreedo
Posté le 02-12-2004 à 15:42:50  profilanswer
 

1. merci de mettre ton code entre balises [ cpp ] et [ /cpp ]
2. si tu lis la page dont je t'ai donné l'url, tu verras que la méthode isNaN retourne un booleen : true si la variable est numérique, false sinon.
Donc quand tu fais a= isNaN(form.c.value), a vaut true ou false.
Il faut donc plutot faire par exemple :

Code :
  1. if (isNaN(form.c.value) == false) {
  2.   c = parseInt(form.c.value);
  3. }
  4. else {
  5.   c = 0;
  6. }


edit: balises foireuses


Message édité par swgreedo le 02-12-2004 à 15:52:34
n°912987
hyptos
Posté le 02-12-2004 à 15:55:42  profilanswer
 

Je fais le code suivant et j'ai toujours NaN Si je ne rempli pas un input
 

Code :
  1. function calc2(form) {
  2. if (isNaN(form.c.value) == false) {
  3.   a = parseInt(form.c.value);
  4. }
  5. else {
  6.   a = 0;
  7. }
  8. if (isNaN(form.d.value) == false) {
  9.   b = parseInt(form.d.value);
  10. }
  11. else {
  12.   b = 0;
  13. }
  14. if (isNaN(form.e.value) == false) {
  15.   c = parseInt(form.e.value);
  16. }
  17. else {
  18.   c = 0;
  19. }
  20. d = parseInt(a)+parseInt(b)+parseInt(c)
  21. form.total2.value = d;
  22. }


Message édité par hyptos le 02-12-2004 à 15:56:41
mood
Publicité
Posté le 02-12-2004 à 15:55:42  profilanswer
 

n°912990
esrevni
à contrario
Posté le 02-12-2004 à 15:57:20  profilanswer
 

mets isNaN(form.c.value) au lieu de (isNaN(form.c.value) == false)

n°912994
hyptos
Posté le 02-12-2004 à 16:00:41  profilanswer
 

Le code suivant ne marche pas non plus
 

Code :
  1. function calc2(form) {
  2. if isNaN(form.c.value) {
  3.   a = parseInt(form.c.value);
  4. }
  5. else {
  6.   a = 0;
  7. }
  8. if isNaN(form.d.value) {
  9.   b = parseInt(form.d.value);
  10. }
  11. else {
  12.   b = 0;
  13. }
  14. if isNaN(form.e.value) {
  15.   c = parseInt(form.e.value);
  16. }
  17. else {
  18.   c = 0;
  19. }
  20. d = parseInt(a)+parseInt(b)+parseInt(c)
  21. form.total2.value = d;
  22. }

n°912995
esrevni
à contrario
Posté le 02-12-2004 à 16:02:40  profilanswer
 

argggg mets les parenthèses qd mm :  
 
(isNaN(form.c.value))

n°912998
hyptos
Posté le 02-12-2004 à 16:07:35  profilanswer
 

J'ai trouvé grâce à vous j'ai juste inversé 2 lignes, merci à tous
 

Code :
  1. function calc2(form) {
  2. if (isNaN(form.c.value)) {
  3.   a = 0;
  4. }
  5. else {
  6.   a = parseInt(form.c.value);
  7. }
  8. if (isNaN(form.d.value)) {
  9.   b = 0;
  10. }
  11. else {
  12.   b = parseInt(form.d.value);
  13. }
  14. if (isNaN(form.e.value)) {
  15.   c = 0;
  16. }
  17. else {
  18.   c = parseInt(form.e.value);
  19. }
  20. d = parseInt(a)+parseInt(b)+parseInt(c)
  21. form.total2.value = d;
  22. }


Message édité par hyptos le 02-12-2004 à 16:13:25
n°913003
esrevni
à contrario
Posté le 02-12-2004 à 16:12:54  profilanswer
 

lol c'est l'inverse isnan = n'est pas un nombre
 
donc isnan(12) renverra false ;)

n°913005
hyptos
Posté le 02-12-2004 à 16:14:41  profilanswer
 

esrevni a écrit :

lol c'est l'inverse isnan = n'est pas un nombre
 
donc isnan(12) renverra false ;)


 
Merci beaucoup je venais de le découvrir juste avant, j'ai modifié le post juste avant ton message.
 
Encore merci à tous

n°913246
hyptos
Posté le 02-12-2004 à 20:45:05  profilanswer
 

Rebonjour,
 
J'ai retrouvé un problème, si un champs <input> n'existe pas dans mon code, le script ne fonctionne pas. Je n'ai pas trouvé de commande exist dans le site http://www.toutjavascript.com/reference/refe [...] ref=isNaN&parent=210
 
Comment faire pour que le code marche ?

n°913298
hyptos
Posté le 02-12-2004 à 22:01:42  profilanswer
 

J'ai trouvé une solution en php, merci à tous.

n°914189
hyptos
Posté le 03-12-2004 à 18:02:43  profilanswer
 

Finalement, j'ai toujours un problème, je voudrais qu'il y ai 2 décimales.
 
J'ai remplacé parseInt par parseFloat mais je ne sais pas le limité à 2 décimales.
 
Est-ce possible ?

n°915447
bob007
Posté le 06-12-2004 à 09:12:41  profilanswer
 

math.round(nb);
ca doit marcher ca je pense nan ?

n°915461
esrevni
à contrario
Posté le 06-12-2004 à 10:12:04  profilanswer
 

déjà traité il y a peu
 
http://forum.hardware.fr/forum2.ph [...] subcat=389
 
 :bounce:

n°915472
hyptos
Posté le 06-12-2004 à 10:28:05  profilanswer
 

ok merci à tous

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  adition en javascript

 

Sujets relatifs
variable de session en javascriptComment recuperer une variable javascript dans php
(Javascript) fenetre en tropAjout de javascript automatique sur les fichier php...
code en javascript et compatibilitéjavascript et chaine carctères
[JAVASCRIPT] Problème de décimaljavascript frames focus
pb javascriptpb de modification de script javascript
Plus de sujets relatifs à : adition en javascript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR