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 :

Fonction de calcul, j'y arrive presque !


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 35
    Par défaut Fonction de calcul, j'y arrive presque !
    Bonjour,
    Je ne suis pas assez bon pour écrire correctement ce type de calcul.
    Le système de codage JavaScript pour le calcul automatique marche (voir plus bas).
    Mais je n'arrive pas à créer la fonction "PrixACHATHT" + "FraisPreparation" =
    Ca fait une sorte de calcul de ce type :
    si 100 + 20
    ça écrire 10020
    alors que ça doit écrire 120

    Je n'arrive pas pas à addition deux champ distint

    Voilà ma page au complet :
    Vous trouverez facilement la ligne ou ce trouve l'erreur, si vous pouviez me dire comment bien écrire cette fonction.
    Merci par avance.

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <html>
    <head>
    <script language="JavaScript">
    function affich_conv_eur_fr(i)
    {
    document.formu.elements['PrixACHATTTC'].value=Math.round((parseFloat(document.formu.elements['PrixACHATHT'].value) * 1.196));
    document.formu.elements['PrixVenteHT'].value=Math.round((parseFloat(document.formu.elements['PrixACHATHT'].value) + (document.formu.elements['FraisPreparation'].value)));
    }
    function affich_test(i)
    {
    document.formu.elements['PrixVenteHT'].value=Math.round((parseFloat(document.formu.elements['PrixACHATHT'].value) + (document.formu.elements['FraisPreparation'].value)));
    }
    function conv_fr_eur(j)
    {
    document.formu.elements['PrixACHATHT'].value=Math.round((parseFloat(document.formu.elements['PrixACHATTTC'].value) / 1.196));
    }
    </script>
    <style type="text/css">
    <!--
    .Style3 {color: #FFFFFF}
    .Style5 {	color: #FF0000;
    	font-weight: bold;
    }
    .Style6 {color: #666666}
    .Style7 {color: #FF0000}
    .Style8 {	color: #000099;
    	font-weight: bold;
    }
    .Style9 {color: #000099}
    -->
    </style>
    </head>
    <body>
    <form name="formu">
       Indiquer notre prix d'achat de ce Jean's à l'unité :<br>
     <br>
     <table width="98%"  border="0">
       <tr><td width="35%">&nbsp;</td><td width="1%">&nbsp;</td><td width="64%">&nbsp;</td></tr>
       <tr> <td><div align="right" class="Style8">Notre &quot;Prix d'achat&quot; : </div></td> <td><span class="Style9"></span></td> <td><input type="text" size="5" name="PrixACHATHT" id="PrixACHATHT" onkeyup="affich_conv_eur_fr(this.value)">
    &euro; HT  <=>
    <input type="text" size="5" name="PrixACHATTTC" id="PrixACHATTTC" onkeyup="conv_fr_eur(this.value)">
    Prix d'achat TTC</td> </tr>
       <tr> <td><div align="right">Vos Frais de pr&eacute;paration 
         de commande :</div></td> <td>&nbsp;</td> <td><input name="FraisPreparation" type="text" id="FraisPreparation" size="10" onkeyup="affich_test(this.value)">
           HT</td> </tr>
       <tr> <td><div align="right">R&eacute;-investissement Publicitaire : </div></td> <td>&nbsp;</td> <td><input name="Pub" type="text" disabled="disabled" id="Pub" size="10">
         HT <span class="Style6"><span class="Style3">...........</span>(Plus de d&eacute;tails)</span></td> </tr>
       <tr> <td><div align="right">Frais de fonctionnement du site : </div></td> <td>&nbsp;</td> <td><input name="FraisFonctionnement" type="text" disabled="disabled" id="FraisFonctionnement" size="10">
         HT<span class="Style6"> <span class="Style3">...........</span>(Plus de d&eacute;tails)</span></td> </tr>
       <tr> <td><div align="right">Notre b&eacute;n&eacute;fice Net : </div></td> <td>&nbsp;</td> <td><input name="BeneficeNetHT" type="text" disabled="disabled" id="BeneficeNetHT" size="10">
         HT<span class="Style6"> <span class="Style3">...........</span>(Plus de d&eacute;tails)</span></td> </tr>
       <tr> <td><div align="right" class="Style5">Prix de vente  : </div></td> <td><span class="Style7"></span></td> <td><span class="Style7">
         <input name="PrixVenteHT" type="text" disabled="disabled" id="PrixVenteHT" size="10">
         <strong>HT <span class="Style3">.</span></strong><span class="Style3">.........</span></span> <span class="Style7"><strong>Montant de la TVA :
           <input name="MontantTVA" type="text" disabled="disabled" id="MontantTVA" size="10">
           <span class="Style3">..........</span> Prix de vente TTC :
           <input name="PrixVenteTTC :" type="text" disabled="disabled" id="PrixVenteTTC :" size="10">
           Euro TTC </strong></span></td> </tr>
       <tr> <td><div align="right">Frais de ports &agrave; payer par le client : </div></td> <td>&nbsp;</td> <td><input name="FraisPortsTTC" type="text" disabled="disabled" id="FraisPortsTTC" size="10">
         TTC</td> </tr>
     </table>
     <br>
    </form>
    </body>
    </html>
    Voici la ligne de code en erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.formu.elements['PrixVenteHT'].value=Math.round((parseFloat(document.formu.elements['PrixACHATHT'].value) + (document.formu.elements['FraisPreparation'].value)));

    Merci par avance de vos lumières !

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 105
    Par défaut
    Bonsoir,

    Tu as juste oublié de mettre parseFloat a la deuxieme valeur :

    Ta ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Math.round((parseFloat(document.formu.elements['PrixACHATHT'].value) + (document.formu.elements['FraisPreparation'].value)));
    La nouvelle ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Math.round((parseFloat(document.formu.elements['PrixACHATHT'].value) + parseFloat(document.formu.elements['FraisPreparation'].value)));
    Quand tes valeurs sont concaténées, c'est que l'une d'entre elle est une chaine et non une valeur numérique.

  3. #3
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Et juste en passant, attention à la virgule ou au point au moment du parse...

    ERE

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 35
    Par défaut Merci !
    Eh ben, c'était pas un gros bug !!
    Donc j'ai testé, ça marche très bien...
    Un grand merci à vous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/08/2014, 21h09
  2. inversion de fonction de calcul
    Par jarko dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 16/12/2005, 18h31
  3. Réponses: 6
    Dernier message: 22/11/2005, 17h08
  4. Modifier un champs texte avec une fonction PHP (calcul TVA)
    Par Stella2809 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 00h55
  5. fonction qui calcule la factorielle ?
    Par piff62 dans le forum C
    Réponses: 8
    Dernier message: 27/02/2005, 11h00

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