|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
Edudiant Inscription : octobre 2011 Messages : 14 ![]() |
Bonjour,
J'ai créer il y a quelques temps un script JS permettant de calculer une somme de boulets nécessaires et prix en monnaie du jeux, bref passons. J'ai donc voulu ajouter des nouvelles fonctionnalités ajouter au jeux, qui déduise la somme de boulets en %, ensuite le script regarde la somme de boulets et calcul le prix. Voici donc le script: Code :
Les partis me posant problème sont en gras. En effet, 1ère ligne en gras, je calcul le % de boulets en moins utilisés selon le niveau d'amélioration (de 20 + 9 + 20 par exemple). Ensuite je garde la valeur, je calcul le nombre de boulets (par exemple pour l'élite 1 à 10 il me faut 100.000.000 points) et je veut déduire à ces 100.000.000 le pourcentage calculé dans EgMath, or impossible, ça ne me soustrait pas comme je veut. Je ne vois pas trop comment faire, si vous aviez des idées... Merci d'avance; CDT |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Salut,
Il est possible que tu ne respectes pas les priorités des signes (division, multiplication...) Je te conseille donc de décomposer ton code ou d'ajouter des parenthèses à certains endroits. Il est clair que si tu ne respecte pas les priorités des signes (* / + - %), ton résultat ne sera jamais correcte. Bonne fin de W.E. beegees
__________________
|
|
|
00
|
|
|
#3 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
La propriété value du champ de formulaire correspond à du texte et pour du texte, le + correspond à la concaténation.
Regarde du coté de parseInt() ou parseFloat() avant d'additionner.
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
10
|
|
|
#4 | |
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Citation:
Très bonne journée à toi. beegees
__________________
|
|
|
|
00
|
|
|
#5 | ||
Edudiant Inscription : octobre 2011 Messages : 14 ![]() |
Merci pour vos réponses,
Voici comment ça se passe au niveau du HTML: Code html :
je ne vois pas trop comment je pourrais ajouter un ParseInt au code... |
||
|
|
00
|
|
|
#6 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Pas dans le code HTML
![]() Dans cette partie-là : Code :
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#7 |
Edudiant Inscription : octobre 2011 Messages : 14 ![]() |
Je ne peut pas mettre ça,
Code :
var BlevelA = document.Elevelrechner.Blevel.value; Si je met un parseFloat, je ne peut pas récupérer les données mise par l'user... |
|
|
00
|
|
|
#8 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Citation:
Pourquoi ? Qu'est-ce qui t'empêche de faire Code :
var BlevelA = parseInt(document.Elevelrechner.Blevel.value, 10);
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#9 |
Edudiant Inscription : octobre 2011 Messages : 14 ![]() |
Je ne savais pas que le'on pouvait faire ainsi ![]() Mais maintenant il ne veut plus marcher ce script |
|
|
00
|
|
|
#10 | |
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
Citation:
beegees
__________________
|
|
|
|
00
|
|
|
#11 | ||
Edudiant Inscription : octobre 2011 Messages : 14 ![]() |
Voici ce que me sort Firebug:
AlevelA.split is not a function Code :
|
||
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() David Vincent (l'homme qui a vu les extra-terrestres)Développeur Web Inscription : mars 2004 Messages : 3 240 ![]() |
ça change quelque chose si tu mets : ???
AlevelA.split(';');
__________________
|
|
|
00
|
|
|
#13 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
La syntaxe que je t'ai donnée n'est qu'un exemple d'utilisation... Renseigne-toi au préalable sur la syntaxe de parseFloat() et parseInt(), elles ne sont pas identiques notamment concernant le second argument.
D'autre part, renseigne-toi aussi sur le résultat renvoyé : tu comprendras qu'elles renvoient des nombres, donc un nombre ne contient pas de ";" et surtout, un objet Number ne possède pas de méthode split() ! A toi ensuite de déterminer à quel moment il faut transformer tes chaines (même si elles ne contiennent que des chiffres) en nombres pour faire une addition et non une concaténation...
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#14 | |||
Edudiant Inscription : octobre 2011 Messages : 14 ![]() |
J'ai donc fait quelques recherches, j'ai conclu ceci:
Code :
Citation:
|
|||
|
|
00
|
|
|
#15 | ||
Edudiant Inscription : octobre 2011 Messages : 14 ![]() |
Le problème c'est que je suis obligé de mettre ce ';' parce que :
Code html :
|
||
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() Thomas Ingénieur développement logiciels Inscription : juillet 2007 Messages : 741 ![]() |
Tu fais un parsefloat sur tes values pour obtenir des floats (chiffres a virgules)
et ensuite tu fais un split(';') sur ces floats... un float n'est pas une chaine de caractere donc split n'existe pas pour ce type. Ce que tu dois faire, c'est un split de tes values, récuperer le premier element de ton split (qui correspond a ta valeur) et faire un parsefloat ensuite. Exemple : <option value="40000;2.jpg">Elite 2</option> Tu fais un split => ca donne un tableau x[0] = 40000 et x[1] = 2.jpg tu fais un parsefloat de x[0] après et ca te donne tes valeurs sur lesquelles travaillées... |
|
|
00
|
|
|
#17 | ||
Edudiant Inscription : octobre 2011 Messages : 14 ![]() |
J'ai enlevé le ;1.jpg.
J'ai fait ça sous une autre manière. J'ai donc "modifié", le script pour obtenir ceci: Code :
Il me sort que des 0 et n'importe quel valeur que je rentre, ça reste 0... Dans PELrabbat, j’additionne tout les bonus de réduction possible. Dans PELaddct, je soustrait les "niveaux élites" et j'enlève les sommes de boulets que l'utilisateur a saisi. Dans Ergebnis1, je fait le calcul final, je divise par 100 le résultat de PELaddct que je multiplie par PELrabbat . |
||
|
|
00
|
|
|
#18 | ||
![]() ![]() Inscription : janvier 2011 Messages : 2 944 ![]() |
Bonsoir,
une petite erreur dans le code ligne 22 Code :
var Munni1 = parseFloat(document.Elevelrechner.Munni1.value); mais à par cela, si je suis AlevelA est un number, because le parseFloat plus loin tu fais var Alevel = AlevelA.split(';');, mais que vaut un number.split() ??? relis ce qu'à écrit Tober Code :
|
||
|
|
00
|
|
|
#19 | |||
Edudiant Inscription : octobre 2011 Messages : 14 ![]() |
Citation:
Maintenant j'ai le droit à une erreur de la part de Firebug: AlevelA.split is not a function Concernant la fin du message, oubli étant donnée que j'ai enlevé le ;1.jpg après le 4000. Mais si j'enlève le spliter j'ia le droit à des NaN dans toutes mes cases. |
|||
|
|
00
|
|
|
#20 | |||
![]() ![]() Inscription : janvier 2011 Messages : 2 944 ![]() |
Citation:
Code :
Code :
var nAlevelA = parseFloat( tAlevelA[0]); // on obtient 1 nombre |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com