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>
Le vrai piège ici c'est que tes Taux_com sont écrits entre guillemets, donc ce sont des chaînes : du coup Prix+Taux_com te colle les deux valeurs bout à bout au lieu d'additionner, alors que le * force la conversion en nombre. Enlève les quotes autour des taux et fais un Number(Prix) en récupérant la valeur, et supprime le var Prixtot en double tout en bas qui écrase ton if/else. Après, si c'est le site d'une agence que tu montes, garde en tête que le plus dur vient une fois le code fini : pour remonter sur Google le renfort d'une agence de référencement fait gagner un temps fou quand on débute côté acquisition.
Modifié en dernier par anti91 le 01 sept. 2026, 04:01, modifié 1 fois.

Avatar du membre
webmaster
Administrateur du site
Messages : 650
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 : 25 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