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 :

Calcul Des Emprunts


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Calcul Des Emprunts
    Bonjour,

    Formule :

    La Formule générale pour le calcul de prêt :

    A = k* I / (1 – (1 + I)–n)

    cette formule mathématique signifie que le montant périodique à payer (A) est égal à la valeur actuelle du principal emprunté (K) multiplié par le taux d'intérêt (I). Ce résultat doit être divisé par 1 moins 1 plus le taux d'intérêt à la puissance négative du nombre total de d'annuités. C'est plus clair comme çà..

    * Le code Javascript :A = (K * I) / (1 - Math.pow(1 + I, -n))

    Math.pow:la fonction Math.pow (x, y) x est le chiffre de base et y est l'exposant (soit la puissance à laquelle le chiffre de base sera élevé). Exemple, Math.pow(3, 2) élève le nombre 3 à la puissance 2, ce qui nous donne 9 comme résultat

    J'ai une autre formule en <gras>EXEL</gras> et je veux bien la transformé en javascript la fomule et la suivante

    A = K/((1-(1+TM)^(-D))/TA)
    sachant que TM = ((1+TA)^(1/12))-1

    A Montant périodique à payer
    k Emprunt
    TA Taux annuel
    TM Taux mensuel
    D Durée

    pour telechargé tous le formulaire en exel voici le lien http://www.aice.be/credit/scripts/calcul-mensualite.rar c un fichier rar qui contient un fichier EXEL je veux bien faire les memes formule sur le fichier exel en JAVASCRIPT ou bien en PHP

    Merci a vous

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour et bienvenue sur Developpez.com

    Pour pouvoir t'aider, il faudrait que tu nous montres la fonction que tu as écrite, ainsi que le code HTML des objets (input ....) concernés ...

    A+

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour voila le code HTML


    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    	<head>
    		<meta	http-equiv="content-type"
    				content="text/html; charset=ISO-8859-1" />
    		<title></title>
     
            <link	rel="stylesheet"
            		type="text/css"
            		href="pret.css" />
            <script type="text/javascript"
            		src="pret.js"></script>
    	</head>
    	<body>
    			<form	name="Saisie" method="post"
    					action="javascript:Calcul();">
    				<table border="4" cellpadding="3" cellspacing="0">
    					<tr>	<th>	Montant<br />
    									du prêt</th>
    							<th>	Durée en<br />
    									 années</th>
    							<th>	Taux<br />
    									Entiers . Décimales</th>
    							<th><input 	type="checkbox"
    										name="imprimer" /> Imprimer</th>
    					</tr>
    					<tr>	<th>	<input 	type="text" size='11' 	name="Montant" /> </th>
    							<th>	<input 	type="text" size='2'  	name="Duree" /> </th>
    							<th>	<input 	type="text" size='7'  	name="Taux" /> </th>
    							<th>	<input 	type="submit"  	     	name="Lancer"
    											value="cliquer ici pour
    Lancer le Calcul" /> </th>
    					</tr>
    			</table>
    		</form>
    		<div id="result"></div>
    	</body>
    </html>
    et voici le code javascript


    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
    	///////////////////////////////////////////////////////
    	function Mef(valeur)	// pour cadrage des valeurs //
    	/////////////////////////////////////////////////////
    	{ 	return valeur.toFixed(2);	}
    	///////////////////////////////////////////////
    	function Calcul()	// calcul des échéances //
    	/////////////////////////////////////////////
    	{	var Af=Number(document.Saisie.Montant.value);
    		if ( Af<1 )
    					alert ("montant du prêt erroné");
    		else	{	var Y=Number(document.Saisie.Duree.value);
    					if ( Y<1 || Y>500 )
    							alert("Durée erronée");
    					else	{	var Ir=Number(document.Saisie.Taux.value);
    								if ( Ir<1 || Ir>20 )
    										alert("Taux erroné");
    								else	{	var Nf = Y * 12;
    											var Rf = (Ir / 1200);
    											var P1 = Af * ( Rf / ( 1 - ( 1 / ( Math.pow ( ( 1 + Rf ), Nf ) ) ) ) ) ;
    											var Pf = Math.floor ( ( P1 + 0.005 ) * 100) / 100;
    										    var impr=   "<"+"b /><"+"br />Prêt de "+
    														document.Saisie.Montant.value+
    														"€ sur "+
    														document.Saisie.Duree.value+
    														" ans, au taux de "+
    														document.Saisie.Taux.value+
    														"% => Echéances de " +
    														Pf+
    														"€ par mois<"+"br /><"+"br />";
    											var Amort=new Array();
    											Amort[0,1] = Af;
    											var Cp=0;
    											var Ci=0;
     
    											for ( var I=1 ; I <= Nf ; I++ )
    											{	Amort[I, 2] = Amort[I - 1, 1] * Rf;
    												Amort[I, 2] = Math.floor((Amort[I, 2] + 0.005) * 100) / 100;
    												Amort[I, 1] = Amort[I - 1, 1] - Pf + Amort[I, 2];
    												Amort[I, 1] = Math.floor ( ( Amort[I, 1] + 0.005 ) * 100 ) / 100;
    												var T1 = I - Math.floor ( ( I - 1 ) / 12 ) * 12;
    												var T2 = 1 + Math.floor ( ( I - 1 ) / 12 );
     
    												Cp = Cp + Pf - Amort[I, 2];
    												Ci = Ci + Amort[I, 2];
    											}
    											Cp = Math.floor((Cp + 0.005) * 100) / 100;
    											Ci = Math.floor((Ci + 0.005) * 100) / 100;
    										document.getElementById("result").innerHTML=impr;
    											if ( document.Saisie.imprimer.checked )
    											{	window.print();	}
    										}
    							}
    				}
    	}
    Les Resultats ne sont pas les meme que je recoi avec le fichier EXEL qui es sur le lien suivant http://www.aice.be/credit/scripts/calcul-mensualite.rar

    La formule que je vous etulisé pour se script et la suivante c'est une formule sous EXEL

    A = K/((1-(1+TM)^(-D))/TA)
    sachant que TM = ((1+TA)^(1/12))-1

    A Montant périodique à payer
    k Emprunt
    TA Taux annuel
    TM Taux mensuel
    D Durée

    Merci a vous

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Il vaudrait mieux utiliser parseFloat() que Number() à chaque fois que tu utilises un .value comme valeur numérique
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var Y=parseFloat(document.forms['Saisie'].elements['Duree'].value, 10);
    A+

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    et pour le changement que je t demandé tu peux m'aidé a le faire ?

    Merci

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par coeugh Voir le message
    et pour le changement que je t demandé tu peux m'aidé a le faire ?
    Ecris la fonction, et on verra ensuite les corrections à apporter

    A+

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/06/2011, 19h29
  2. [DBA] Calcul des Statistiques sans privilèges DBA
    Par Krashtest dans le forum Administration
    Réponses: 14
    Dernier message: 06/05/2004, 16h08
  3. calculs des points
    Par rabi dans le forum OpenGL
    Réponses: 11
    Dernier message: 12/02/2004, 10h03
  4. Calcul des jours feriés
    Par obione dans le forum Langage
    Réponses: 5
    Dernier message: 07/11/2003, 12h36
  5. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29

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