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

JavaScript Discussion :

Déduire des % en JS ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    étudiant
    Inscrit en
    Octobre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 17
    Par défaut Déduire des % en JS ?
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    function Trenner(number) {
    number = '' + number;
    if (number.length > 3) {
    var mod = number.length % 3;
    var output = (mod > 0 ? (number.substring(0,mod)) : '');
    for (i=0 ; i < Math.floor(number.length / 3); i++) {
    if ((mod == 0) && (i == 0))
    output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
    else
    // variables
    output+= '.' + number.substring(mod + 3 * i, mod + 3 * i + 3);
    }  
    return (output);
    }
    else return number;
    }
    function eliteMapCalc(){
    var AlevelA = document.eliteMapCalc.Alevel.value;
    var BlevelA = document.eliteMapCalc.Blevel.value;
    var GIles = document.eliteMapCalc.GIles.value;
    var Munni1 = document.eliteMapCalc.Munni1.value;
    var Munni2 = document.eliteMapCalc.Munni2.value;
    var Munni3 = document.eliteMapCalc.Munni3.value;
    var Cloche = document.eliteMapCalc.Cloche.value;
    var PteElt = document.eliteMapCalc.PteElt.value;
    var Nvelit = document.eliteMapCalc.Nvelit.value;
    var Alevel = AlevelA.split(";");
    var Blevel = BlevelA.split(";");
    if(Blevel[0] - Alevel[0] <= 0) {
    Fehler = "ERREUR: Vous ne pouvez pas descendre dans les niveaux élites!";
    alert(Fehler);
    } var Standart = 50 - GIles;
    var Prem = 47.5 - GIles;
    var Rab = 37.5 - GIles;
    var RaPre = 35 - GIles;
    var EgMath = Math.round(Cloche+PteElt+Nvelit*100)/100;
    var Case1 = Blevel[0] - Alevel[0] - Munni1 - Munni2 - (2* Munni3) - EgMath;
    var Case2 = (Case1/100)*Standart;
    var Case3 = (Case1/100)*Prem;
    var Case4 = (Case1/100)*Rab;
    var Case5 = (Case1/100)*RaPre;
    var Link = "http://seafightastuces.com/app/webroot/files/images/guides/elites/";
    document.eliteMapCalc.Kugelbedarf.value=(Trenner(Math.ceil(Case1)));
    document.eliteMapCalc.Normal.value=(Trenner(Math.ceil(Case2)));
    document.eliteMapCalc.Premium.value=(Trenner(Math.ceil(Case3)));
    document.eliteMapCalc.Rabatt.value=(Trenner(Math.ceil(Case4)));
    document.eliteMapCalc.PremRab.value=(Trenner(Math.ceil(Case5)));
    document.img.src = Link+Alevel[1];
    document.img1.src = Link+Blevel[1];
    }

    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

  2. #2
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    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

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par Bovino Voir le message
    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.
    Bien vu Bovino.

    Très bonne journée à toi.

    beegees

  5. #5
    Membre averti
    Homme Profil pro
    étudiant
    Inscrit en
    Octobre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 17
    Par défaut
    Merci pour vos réponses,
    Voici comment ça se passe au niveau du HTML:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
                           <tr>
            <td colspan="2">texte</td>
            <td align="right">
            <select id="Nvelit" size="1" name="Nvelit">
            <option value="0">Navire élite</option>
            <option value="0">---------------------------</option>
            <option value="0">Aucun</option>
            <option value="5">Supremacy + élite 15 (+5%)</option>
            <option value="6">Supremacy + élite 18 (+6%)</option>
            <option value="7">Supremacy + élite 21 (+7%)</option>
            <option value="7">Sea Hawk (+7%)</option>
            <option value="8">Supremacy + élite 24 (+8%)</option>
            <option value="9">Supremacy + élite 27 (+9%)</option>
            </select>
            </td>
          </tr>

    je ne vois pas trop comment je pourrais ajouter un ParseInt au code...

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Pas dans le code HTML
    Dans cette partie-là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var AlevelA = document.eliteMapCalc.Alevel.value;
    var BlevelA = document.eliteMapCalc.Blevel.value;
    var GIles = document.eliteMapCalc.GIles.value;
    var Munni1 = document.eliteMapCalc.Munni1.value;
    var Munni2 = document.eliteMapCalc.Munni2.value;
    var Munni3 = document.eliteMapCalc.Munni3.value;
    var Cloche = document.eliteMapCalc.Cloche.value;
    var PteElt = document.eliteMapCalc.PteElt.value;
    var Nvelit = document.eliteMapCalc.Nvelit.value;
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. Formule pour déduire des nombres pair dans une boucle
    Par Lekno dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 02/10/2010, 11h31
  2. Défi : Déduire des liens familiaux !
    Par Ggamer dans le forum Général Python
    Réponses: 3
    Dernier message: 12/03/2010, 15h16
  3. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18
  4. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37
  5. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01

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