Ciao a tutti
Ho trovato un codice in js che calcola il tasso di interesse composto di un mutuo conoscendo l'importo finanziato la durata e la rata.
Il risultato è però difforme da quello che mi restituisce excel e altri siti online.
l'esempio utilizzato è questo:
Importo: 150000
rata: 1006
durata: 20 anni (240 mesi)
rata mensile: 12
il Risultato è 5,31% invece dovrebbe venire 5,20% (arrotondati)
sapreste trovarmi l'errore??? grazie mille x l'aiuto
vi allego il codice
<script>
//variabili globali
rapporto = 0;
nk = 0;
//implementazione della funzione
function f(x)
{
return (1-rapporto*x)*Math.pow(1+x,nk)-1;
}
//funzione di i/o con la pagina XHTML
function calcoloTasso(mutuo,rata,anni,periodo)
{
m = parseFloat(mutuo);
r = parseFloat(rata);
n = parseInt(anni)
k = parseInt(periodo);
rapporto = m/r;
nk = n*k;
if (rapporto>=nk)
{
alert("dati incongruenti");
return undefined;
}
ik = bisezione(0.00001,1); // algoritmo di bisezione
ia = Math.pow(1+ik,k)-1; // calcolo del tasso annuo
ia *=100; // sua espressione in percentuale
return Math.round(ia*10000)/10000; //arrotondamento al decimillesimo
}
//implementazione ricorsiva dell'algoritmo di bisezione
function bisezione(a,b)
{
fa = f(a);
if (fa==0) return a;
fb = f(b);
if (fb==0) return b;
m = (a+b)/2;
fm = f(m);
if (fm==0) return m;
if ((b-a)<1e-8) return m;
if (fa*fm<0)
return bisezione(a,m)
else
return bisezione(m,b);
}
</script>
<form action="form_action.asp" method="get" id="dati1" name="dati1"
style="text-align:center">
<label for="mutuo1">mutuo</label>
<input type="text" name="mutuo1" id="mutuo1" size="10" value="100000"
style="text-align:right"/>€
</p>
<label for="rata">rata</label>
<input type="text" name="rata1" id="rata1" size="12" value="1100"
style="text-align:right"/>€
</p>
<label for="periodo1">periodicità</label>
<select id="periodo1" name="periodo1">
<option value="12">mensile</option>
<option value="6">bimestrale</option>
<option value="4">trimestrale</option>
<option value="3">quadrimestrale</option>
<option value="2">semestrale</option>
<option value="1">annuale</option>
</select>
</p>
<label for="durata1">durata</label>
<input type="text" name="durata1" id="durata1" size="3" value="10"
style="text-align:right"/>anni
</p>
<input type="button" value=" calcolo del tasso "
onclick="tasso1.value=calcoloTasso(mutuo1.value,ra ta1.value,durata1.value,periodo1.value)"/>
<label for="tasso1">tasso</label>
<input type="text" name="tasso1" id="tasso1" size="10" value=" "
style="text-align:right"/>%
</p>
</p>
</form>