plusieurs calcul en fonction d'un montant

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
anti91
Messages : 3
Enregistré le : 13 juin 2019, 11:35

plusieurs calcul en fonction d'un montant

Message par anti91 » 03 juil. 2019, 10:45

bonjour à tous ,

j'ai un petit souçis, j'ai créé une fonction pour faire un calcul de frais d'agence en fonction du montant , le problème que je rencontre , c'est que dans ce calcul j'ai des addition et des mulitiplication , et je ne sais comment faire pour que cela fonctionne .

avec se code , il multiplie le taux_com par le prix , alors que pour le prix inférieur à 100000 je voudrais qu'il additionne le taux_com .....

voila le code que j'ai fais au départ

merci pour votre aide sachant que je suis débutant

Code : Tout sélectionner

<script>
        function Calcul() {
        console.log("toto");
        Prix = document.getElementById('prix').value;
        if(Prix >= 1 && Prix <= 99999){
        Taux_com = ('6000');
        }
        if(Prix >= 100000 && Prix <= 200000){
        Taux_com = ('1.06');
        }
        if(Prix >= 200001 && Prix <= 400000){
        Taux_com = ('1.05');
        }
        if(Prix > 400001 ){
        Taux_com = ('1.04');
        }
        var Prixtot = Prix*Taux_com;
        var Com = Prixtot-Prix;
        document.getElementById('prix_fai').value= Prixtot.toFixed();
        document.getElementById('commission').value= Com.toFixed();
 
        }
        </script>
et ce que j'ai essayé de modifier mais sans succès

Code : Tout sélectionner

<script>
       function Calcul() {
       console.log("toto");
       Prix = document.getElementById('prix').value;
       if(Prix >= 1 && Prix <= 99999){
       Taux_com = ('6000');
       }
       if(Prix >= 100000 && Prix <= 200000){
       Taux_com = ('1.06');
       }
       if(Prix >= 200001 && Prix <= 400000){
       Taux_com = ('1.05');
       }
       if(Prix > 400001 ){
       Taux_com = ('1.04');
       }
       if(Prix < 350001 ){
       Taux_com = ('1.04');
       }
       if(Prix <= 99999){
       var Prixtot = Prix+Taux_com;
       }
       else
       {
       var Prixtot = Prix*Taux_com;
       }
       var Prixtot = Prix*Taux_com;
       var Com = Prixtot-Prix;
       document.getElementById('prix_fai').value= Prixtot.toFixed();
       document.getElementById('commission').value= Com.toFixed();
 
       }
       </script>

Avatar du membre
webmaster
Administrateur du site
Messages : 99
Enregistré le : 28 févr. 2017, 15:19

Re: plusieurs calcul en fonction d'un montant

Message par webmaster » 03 juil. 2019, 11:12

Bonjour,

Voici une solution :
https://www.toutjavascript.com/user/fai.html

Pour les calculs, il faut bien convertir en nombre avec parseFloat
J'ai ajouté un if / else pour distinguer la commission fixe en dessous de 100k et le taux au dela

Le source :

Code : Tout sélectionner

<script>
    function Calcul() {
	    console.log("toto");
		Prix = parseFloat(document.getElementById('prix').value);
		
		if(Prix >= 1 && Prix < 100000) {
			/* Commission fixe */
			var Com = 6000;		    	
			var Prixtot = Prix + Com;
    	} else {
	    	/* Commission proportionnelle */
			if(Prix >= 100000 && Prix <= 200000){
				Taux_com = 1.06;
	    	}
			if(Prix >= 200001 && Prix <= 400000){
				Taux_com = 1.05
	    	}
			if(Prix > 400001 ){
				Taux_com = 1.04;
	    	}
			var Prixtot = Prix*Taux_com;
			var Com = Prixtot-Prix;		    	
    	}
		document.getElementById('prix_fai').value= Math.round(Prixtot);
		document.getElementById('commission').value= Math.round(Com);
    }
</script>
<form>
	Prix : <input type="text" id="prix" value="1000">
	<input type="button" value="Calculer" onclick="Calcul()">
	<hr>
	Prix FAI : <input type="text" id="prix_fai" value=""><br>
	
	Commission : <input type="text" id="commission" value="">
</form>
TJS : 20 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

anti91
Messages : 3
Enregistré le : 13 juin 2019, 11:35

Re: plusieurs calcul en fonction d'un montant

Message par anti91 » 03 juil. 2019, 12:38

Bonjour

et merci pour cette éléments de réponse qui me permet d'y voir un peu plus clair ....

cela fonctionne parfaitement .

je vais faire d'autres test pour mieux comprendre tous ça ....

mais c'est très clair .

merci encore pour ton aide

Répondre