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 :

erreur dans la formule de calcul introuvable


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut erreur dans la formule de calcul introuvable
    bonjours

    Je ne arrive pas à faire un calcul à partir d'une formule mathématique javascript. Dans cette formule je ne trouve pas où se situe l'erreur. Le calcul ne se fait pas. Or si je fais un calcul simple il se realise.

    Peut on mettre des parenthèses dans une formule de calcul javascript ?

    Si oui ben je suis coincé je ne sais pas où se trouve l'erreur.

    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
     
    <?php
    $e = 400;
    $b = 1;
    ?>
    <html>
    <head>
    <title></title>
    </head>
    <body bgcolor="#FFFFE0" text="#000000">
     <table border="1" align="center">
     <tr><th colspan="3"><b>Calcul Prix Variant</b></th></tr>
     <tr>
       <td><b>Prix unitaire de base</b></td>
       <td><input type="text" name="pr_uni" size="5" OnChange="document.formulaire.resultat1.value = (document.formulaire.pr_uni.value -(document.formulaire.pr_uni.value - document.formulaire.pr_max.value) / (document.formulaire.qte_b.value - document.formulaire.qte_max.value)) + ((document.formulaire.pr_uni.value - document.formulaire.pr_max) / (document.formulaire.qte_b.value - document.formulaire.qte_max.value) * document.formulaire.qte_t.value)"></td>
       <td><b>&euro;</b></td>
     </tr>
     <tr>
       <td><b>Quantité de base</b></td>
       <td><input name="qte_b" type="text" value="<?php echo $b;?>" size="5" maxlength="5"></td>
     </tr>
     <tr>
       <td><b>Prix minimum variant</b></td>
       <td><input type="text" name="pr_max" size="5" maxlength="5"></td>
       <td><b>&euro;</b></td>
     </tr>
     <tr>
        <td><b>Quantité Maximum</b></td>
        <td><input type="text" name="qte_max" size="5" maxlength="5"></td>
     </tr>
     <tr>
        <td><b>Quantité Actuelle</b></td>
        <td><input type="text" name="qte_t" size="5" maxlength="5"></td>
     </tr>
     <tr>
       <td><b>Le Prix variant</b></td>
       <td><input name="resultat1" type="text" id="resultat1" size="5" maxlength="5"></td>
       <td><b>&euro;</b></td>
     </tr>
    </table>
    </html>
    Povez vous m'aider ?
    merci d'avance

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Vérifies tes valeurs par des alert pour voir

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    par des alerts ?

    Peux tu me donner cette fonction de vérification ?

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    fais par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert(document.formulaire.pr_uni.value - document.formulaire.pr_max.value);

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Number() ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    J ai compris il ne prend pas les valeurs or du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td>input ... onchange....</td>
    J'ai tenter ca cela fonctionne
    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
     
    <html>
    <head>
    <title></title>
    </head>
    <body bgcolor="#FFFFE0" text="#000000">
    <form name="formulaire" method="post" action="calcul1.php">
     <table width="610" border="0" align="center">
     <tr>
       <td><div align="right">Nombre d'adultes</div></td>
       <td><input type="text" name="pr_max" size="5" OnChange="document.formulaire.resultat1.value = (document.formulaire.pr_max.value * document.formulaire.qte_max.value) + document.formulaire.qte_t.value"><br><input name="qte_max" type="text" value="20"><br><input name="qte_t" type="text" value="100"></td>
       <td><div align="left">
             <input name="resultat1" type="text" id="resultat1" size="10">      
         &euro;</div></td>
     </tr>
    </table>
    </form>
    </html>
    Ma question maintenant :
    Comment puis - je récupérer la valeur des champs situé en dehors de la formule mathématique ?

    exemple pour h:
    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
    <html>
    <head>
    <title></title>
    </head>
    <body bgcolor="#FFFFE0" text="#000000">
    <form name="formulaire" method="post" action="calcul1.php">
     <table width="610" border="0" align="center">
     <tr>
       <td><div align="right">Nombre d'adultes</div></td>
       <td><input type="text" name="pr_max" size="5" OnChange="document.formulaire.resultat1.value = (document.formulaire.pr_max.value * document.formulaire.qte_max.value) + document.formulaire.qte_t.value +document.formulaire.h.value"><br><input name="qte_max" type="text" value="20"><br><input name="qte_t" type="text" value="100"></td>
       <td><input type="text" name="h"></td>
       <td><div align="left">
             <input name="resultat1" type="text" id="resultat1" size="10">      
         &euro;</div></td>
     </tr>
    </table>
    </form>
    </html>

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    mest des id plutot que des names ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getELementById('identitifant').value

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    est ce que c'est possible a faire aussi?

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut re
    je tente avec des id pour voir

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    Le calcul se fait mais il ne prend pas la valeur de id="h"

    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
    <html>
    <head>
    <title></title>
    </head>
    <body bgcolor="#FFFFE0" text="#000000">
    <form name="formulaire" method="post" action="calcul1.php">
     <table width="610" border="0" align="center">
     <tr>
       <td><div align="right">Nombre d'adultes</div></td>
       <td><input type="text" name="pr_max" size="5" OnChange="document.formulaire.resultat1.value = (document.formulaire.pr_max.value * document.formulaire.qte_max.value) + document.formulaire.qte_t.value + document.formulaire.h.value"><br><input name="qte_max" type="text" value="20"><br><input name="qte_t" type="text" value="100"></td>
        <td><input type="text" id="h"></td>
       <td><div align="left">
             <input name="resultat1" type="text" id="resultat1" size="10">      
         &euro;</div></td>
     </tr>
    </table>
    </form>
    </html>

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut

    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.formulaire.h.value
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('h').value
    utilises soit le name soit l'id mais pas un hybride des deux !!!
    de plus la syntaxe permissive d'IE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.nomduform.monement.value
    est à proscrire ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['nomduform'].elements['nomelement'].value
    est plus sur !

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut
    c'est bon ca marche

    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
    <html>
    <head>
    <title></title>
    </head>
    <body bgcolor="#FFFFE0" text="#000000">
    <form name="formulaire" method="post" action="calcul1.php">
     <table width="610" border="0" align="center">
     <tr>
       <td><div align="right">Nombre d'adultes</div></td>
        <td><input type="text" id="h"></td>
       <td><input type="text" name="chiffre1" size="5" OnChange="document.formulaire.resultat1.value = document.formulaire.chiffre1.value * document.formulaire.hiddenField1.value * document.formulaire.h.value">
       <input name="hiddenField1" type="text" value="20"></td>
       <td><div align="left">
             <input name="resultat1" type="text" id="resultat1" size="10">      
         &euro;</div></td>
     </tr>
    </table>
    </form>
    </html>
    c'est bon 5*2*10 = 200

    Mais si je fais une addition simple. exemple 5+2+20 =27

    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
    <html>
    <head>
    <title></title>
    </head>
    <body bgcolor="#FFFFE0" text="#000000">
    <form name="formulaire" method="post" action="calcul1.php">
     <table width="610" border="0" align="center">
     <tr>
       <td><div align="right">Nombre d'adultes</div></td>
        <td><input type="text" id="h"></td>
       <td><input type="text" name="chiffre1" size="5" OnChange="document.formulaire.resultat1.value = document.formulaire.chiffre1.value + document.formulaire.hiddenField1.value + document.formulaire.h.value">
       <input name="hiddenField1" type="text" value="20"></td>
       <td><div align="left">
             <input name="resultat1" type="text" id="resultat1" size="10">      
         &euro;</div></td>
     </tr>
    </table>
    </form>
    </html>
    et non il trouve 2205

    idem pour une soustraction 5-2-20=-17
    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
    <html>
    <head>
    <title></title>
    </head>
    <body bgcolor="#FFFFE0" text="#000000">
    <form name="formulaire" method="post" action="calcul1.php">
     <table width="610" border="0" align="center">
     <tr>
       <td><div align="right">Nombre d'adultes</div></td>
        <td><input type="text" id="h"></td>
       <td><input type="text" name="chiffre1" size="5" OnChange="document.formulaire.resultat1.value = document.formulaire.chiffre1.value - document.formulaire.hiddenField1.value - document.formulaire.h.value">
       <input name="hiddenField1" type="text" value="20"></td>
       <td><div align="left">
             <input name="resultat1" type="text" id="resultat1" size="10">      
         &euro;</div></td>
     </tr>
    </table>
    </form>
    </html>
    il me trouve 5-2-20 = -23

    idem pour une division 5/2/20=0.125
    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
    <html>
    <head>
    <title></title>
    </head>
    <body bgcolor="#FFFFE0" text="#000000">
    <form name="formulaire" method="post" action="calcul1.php">
     <table width="610" border="0" align="center">
     <tr>
       <td><div align="right">Nombre d'adultes</div></td>
        <td><input type="text" id="h"></td>
       <td><input type="text" name="chiffre1" size="5" OnChange="document.formulaire.resultat1.value = document.formulaire.chiffre1.value / document.formulaire.hiddenField1.value / document.formulaire.h.value">
       <input name="hiddenField1" type="text" value="20"></td>
       <td><div align="left">
             <input name="resultat1" type="text" id="resultat1" size="10">      
         &euro;</div></td>
     </tr>
    </table>
    </form>
    </html>
    il trouve 0.02

    C'est bizarre seul la multiplication fonctionne. Quelqu"un peut me dire pourquoi il fait des caluls faux pour une addition, soustraction et division. C'est étrange

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    Quelqu"un peut me dire pourquoi il fait des caluls faux pour une addition, soustraction et division?

    c'est embêtant j ai cru que c'etait resolu car la multiplication fonctionne. Mais des que j'ai fais une addition j'etais vert euh rouge, car l'addition est fausse, idem pour la soustraction et division

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Points : 126
    Points
    126
    Par défaut rep
    Demande

    quelqu'un peut me donner le code pour :

    aditionner ou soustraire ou diviser ou multiplier les valeurs de deux champs et afficher le resultat dans un troisieme champ

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    c'est l'eternel problème de la virgule flottante en javascript en fonction des browsers ...

    il doit y avoir un truc là dessus dans la faq c'est un sujet souvent abordé, il existe des petites fonctions pour y remédier ..

Discussions similaires

  1. [XL-2007] Erreur Dans ma Formule Calcul Conditionnel
    Par le Corse dans le forum Excel
    Réponses: 3
    Dernier message: 19/11/2014, 14h10
  2. erreur dans une formule SI ?
    Par Maxence45 dans le forum Excel
    Réponses: 7
    Dernier message: 25/11/2007, 07h21
  3. Réponses: 3
    Dernier message: 21/09/2007, 16h28
  4. [EXCEL 2003] gérer les erreur dans les formules
    Par aityahia dans le forum Excel
    Réponses: 2
    Dernier message: 15/05/2007, 10h29
  5. Pb arrondi dans une formule de calcul
    Par REMACC1 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/03/2006, 09h16

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