Aiuto con tabella piano di ammortamento

moncicci

Nuovo Utente
4 Gen 2005
8
0
0
Ciao a tutti!

Sto modificando questo script:

<html>
<head>
</head>
<body>
<?php
//$M = capitale
//$t = tasso d'interesse
//$N = numero periodi

$M = $_POST["M"];
$N = $_POST["durata"]*$_POST["cadenza"];
$t = $_POST["tasso"]/(100*$_POST["cadenza"]);

$T = $t + 1;
$n = $N - 1;

$a = array();
$i = 0;
while ($i <= $n) {
$pow = pow($T,$i);
array_push($a,$pow);
$i = $i + 1;
}

$somma = array_sum($a);
$pot = pow($T,$N);
$rata = $M*$pot/$somma;
$tot = $rata*$N;
$interessi = $tot - $M;
$capres = $M;
$qtaint = $capres * $t;
$qtacap = $rata - $qtaint;

//formattazione cifre
$M = number_format($M,2,',','.');
$rata = number_format($rata,2,',','.');
$tot = number_format($tot,2,',','.');
$interessi = number_format($interessi,2,',','.');
$capres = number_format($capres,2,',','.');
$qtaint = number_format($qtaint,2,',','.');
$qtacap = number_format($qtacap,2,',','.');
$capres1 = floor(($capres1) * 100) * .01;
$qtaint1 = number_format($qtaint1,2,',','.');
$qtacap1 = number_format($qtacap1,2,',','.');
$capres2 = number_format($capres2,2,',','.');
$qtaint2 = number_format($qtaint2,2,',','.');
$qtacap2 = number_format($qtacap2,2,',','.');
//fine formattazione

if($_POST["cadenza"]==12) $freq="mensile";
if($_POST["cadenza"]==6) $freq="bimestrale";
if($_POST["cadenza"]==4) $freq="trimestrale";
if($_POST["cadenza"]==2) $freq="semestrale";

echo "<br>Capitale finanziato = ".$M ." €<br>";
echo "Durata del mutuo = ".$_POST["durata"] ." anni<br>";
echo "Frequenza della rata = ". $freq ."<br>";
echo "tasso d'interesse = ".$_POST["tasso"] ."% annuo<br>";

echo "<br>importo della rata = ".$rata ." €<br>";
echo "numero di rate = ".$N ." rate<br>";
echo "totale rate = ".$tot ." €<br>";
echo "interessi = ".$interessi." €";
?>
<table border="1">
<tr>
<td>N.° Rata</td>
<td>Quota Interessi</td>
<td>Quota Capitale</td>
<td>Capitale Residuo</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
<td>
<?php
echo ($capres);
?>
</td>
</tr>
<tr>
<td>1</td>
<td>
<?php
echo ($qtaint);
?>
</td>
<td>
<?php
echo ($qtacap);
?>
</td>
<td>
<?php
echo ($capres1 = $capres - $qtacap);
?>
</td>
</tr>
<tr>
<td>2</td>
<td>
<?php
echo ($qtaint1 = $capres1 * $t);
?>
</td>
<td>
<?php
echo ($qtacap1 = $rata - $qtaint1);
?>
</td>
<td>
<?php
echo ($capres2 = $capres1 - $qtaint1);
?>
</td>
</tr>
<tr>
<td>3</td>
<td>
<?php
echo ($qtaint2 = $capres2 * $t);
?>
</td>
<td>
<?php
echo ($qtacap2 = $rata - $qtaint2);
?>
</td>
<td>
<?php
echo ($capres3 = $capres2 - $qtaint2);
?>
</td>
</tr>
</table>
</body>
</html>

Lo script è ancora incompleto, il mio problema è che alcune cifre mi si arrotondano sfasandomi tutti i calcoli...come posso fare? Grazie! :)
 
ho visto che usi la funzione floor() per l'arrotondamento, potresti eliminare quella per evitare calcoli sfasati
 
Ciao!

guarda, c'ho provato ma niente...

Questa sintassi non dovrebbe essere giusta?

$capres = number_format($capres,2,',','.');

Ho googleato un po' ed ho trovato solo la suddetta formula ma nada... non so se posso postare il link del mio spazio in cui sto facendo i test, in modo da farvi vedere gli errori...

Comunque: http://marcellogabrielli.it/test77/mutuo2.html
Come dati sto facendo le prove seguendo questa guida: http://www.telemutuo.it/culturamutui/ammortamento-francese.html
I dati-test quindi sono:
Capitale finanziato = 50.000,00 €
Durata del mutuo = 5 anni
Frequenza della rata = semestrale
tasso d'interesse = 6% annuo

ma già mi arrotonda il secondo capitale residuo, mentre da esempio dovrebbe esserci una virgola alla fine... per favore, mi potete aiutare?
 
AGGIORNAMENTO:
Sono riuscito a risolvere la cosa, ecco il codice aggiornato:

<html>
<head>
</head>
<body>
<?php
//$M = capitale
//$t = tasso d'interesse
//$N = numero periodi

$M = $_POST["M"];
$N = $_POST["durata"]*$_POST["cadenza"];
$t = $_POST["tasso"]/(100*$_POST["cadenza"]);

$T = $t + 1;
$n = $N - 1;

$a = array();
$i = 0;
while ($i <= $n) {
$pow = pow($T,$i);
array_push($a,$pow);
$i = $i + 1;
}

$somma = array_sum($a);
$pot = pow($T,$N);
$rata = $M*$pot/$somma;
$tot = $rata*$N;
$interessi = $tot - $M;
$capres = $M;
$qtaint = $capres * $t;
$qtacap = $rata - $qtaint;
$capres1 = $capres - $qtacap;
$qtaint1 = $capres1 * $t;
$qtacap1 = $rata - $qtaint1;
$capres2 = $capres1 - $qtacap1;
$qtaint2 = $capres2 * $t;
$qtacap2 = $rata - $qtaint2;
$capres3 = $capres2 - $qtacap2;
$qtaint3 = $capres3 * $t;
$qtacap3 = $rata - $qtaint3;
$capres4 = $capres3 - $qtacap3;
$qtaint4 = $capres4 * $t;
$qtacap4 = $rata - $qtaint4;
$capres5 = $capres4 - $qtacap4;
$qtaint5 = $capres5 * $t;
$qtacap5 = $rata - $qtaint5;
$capres6 = $capres5 - $qtacap5;
$qtaint6 = $capres6 * $t;
$qtacap6 = $rata - $qtaint6;
$capres7 = $capres6 - $qtacap6;
$qtaint7 = $capres7 * $t;
$qtacap7 = $rata - $qtaint7;
$capres8 = $capres7 - $qtacap7;
$qtaint8 = $capres8 * $t;
$qtacap8 = $rata - $qtaint8;
$capres9 = $capres8 - $qtacap8;
$qtaint9 = $capres9 * $t;
$qtacap9 = $rata - $qtaint9;
$capres10 = $capres9 - $qtacap9;
$qtaint10 = $capres10 * $t;
$qtacap10 = $rata - $qtaint10;
$capres11 = $capres10 - $qtacap10;
$qtaint11 = $capres11 * $t;
$qtacap11 = $rata - $qtaint11;
$capres12 = $capres11 - $qtacap11;
$qtaint12 = $capres12 * $t;
$qtacap12 = $rata - $qtaint12;
$capres13 = $capres12 - $qtacap12;
$qtaint13 = $capres13 * $t;
$qtacap13 = $rata - $qtaint13;
$capres14 = $capres13 - $qtacap13;
$qtaint14 = $capres14 * $t;
$qtacap14 = $rata - $qtaint14;
$capres15 = $capres14 - $qtacap14;
$dec = 2 ; // valori decimali a cui arrotondare
$d = "," ; // Separatore decimali
$k = "." ; // separatore migliaia
$numrata = 0;
//formattazione cifre
$M = number_format($M,$dec,$d,$k);
$rata = number_format($rata,$dec,$d,$k);
$tot = number_format($tot,$dec,$d,$k);
$interessi = number_format($interessi,$dec,$d,$k);
$capres = number_format($capres,$dec,$d,$k);
$qtaint = number_format($qtaint,$dec,$d,$k);
$qtacap = number_format($qtacap,$dec,$d,$k);
$capres1 = number_format($capres1,$dec,$d,$k);
$qtaint1 = number_format($qtaint1,$dec,$d,$k);
$qtacap1 = number_format($qtacap1,$dec,$d,$k);
$capres2 = number_format($capres2,$dec,$d,$k);
$qtaint2 = number_format($qtaint2,$dec,$d,$k);
$qtacap2 = number_format($qtacap2,$dec,$d,$k);
$capres3 = number_format($capres3,$dec,$d,$k);
$qtaint3 = number_format($qtaint3,$dec,$d,$k);
$qtacap3 = number_format($qtacap3,$dec,$d,$k);
$capres4 = number_format($capres4,$dec,$d,$k);
$qtaint4 = number_format($qtaint4,$dec,$d,$k);
$qtacap4 = number_format($qtacap4,$dec,$d,$k);
$capres5 = number_format($capres5,$dec,$d,$k);
$qtaint4 = number_format($qtaint4,$dec,$d,$k);
$qtacap4 = number_format($qtacap4,$dec,$d,$k);
$capres5 = number_format($capres5,$dec,$d,$k);
$qtaint5 = number_format($qtaint5,$dec,$d,$k);
$qtacap5 = number_format($qtacap5,$dec,$d,$k);
$capres6 = number_format($capres6,$dec,$d,$k);
$qtaint6 = number_format($qtaint6,$dec,$d,$k);
$qtacap6 = number_format($qtacap6,$dec,$d,$k);
$capres7 = number_format($capres7,$dec,$d,$k);
$qtaint7 = number_format($qtaint7,$dec,$d,$k);
$qtacap7 = number_format($qtacap7,$dec,$d,$k);
$capres8 = number_format($capres8,$dec,$d,$k);
$qtaint8 = number_format($qtaint8,$dec,$d,$k);
$qtacap8 = number_format($qtacap8,$dec,$d,$k);
$capres9 = number_format($capres9,$dec,$d,$k);
$qtaint9 = number_format($qtaint9,$dec,$d,$k);
$qtacap9 = number_format($qtacap9,$dec,$d,$k);
$capres10 = number_format($capres10,$dec,$d,$k);
$qtaint10 = number_format($qtaint10,$dec,$d,$k);
$qtacap10 = number_format($qtacap10,$dec,$d,$k);
$capres11 = number_format($capres11,$dec,$d,$k);
$qtaint11 = number_format($qtaint11,$dec,$d,$k);
$qtacap11 = number_format($qtacap11,$dec,$d,$k);
$capres12 = number_format($capres12,$dec,$d,$k);
$qtaint12 = number_format($qtaint12,$dec,$d,$k);
$qtacap12 = number_format($qtacap12,$dec,$d,$k);
$capres13 = number_format($capres13,$dec,$d,$k);
$qtaint13 = number_format($qtaint13,$dec,$d,$k);
$qtacap13 = number_format($qtacap13,$dec,$d,$k);
$capres14 = number_format($capres14,$dec,$d,$k);
$qtaint14 = number_format($qtaint14,$dec,$d,$k);
$qtacap14 = number_format($qtacap14,$dec,$d,$k);
$capres15 = number_format($capres15,$dec,$d,$k);
//fine formattazione

if($_POST["cadenza"]==12) $freq="mensile";
if($_POST["cadenza"]==6) $freq="bimestrale";
if($_POST["cadenza"]==4) $freq="trimestrale";
if($_POST["cadenza"]==2) $freq="semestrale";

echo "<br>Capitale finanziato = ".$M ." €<br>";
echo "Durata del mutuo = ".$_POST["durata"] ." anni<br>";
echo "Frequenza della rata = ". $freq ."<br>";
echo "tasso d'interesse = ".$_POST["tasso"] ."% annuo<br>";

echo "<br>importo della rata = ".$rata ." €<br>";
echo "numero di rate = ".$N ." rate<br>";
echo "totale rate = ".$tot ." €<br>";
echo "interessi = ".$interessi." €";
?>
<table border="0" align="center">
<tr>
<td>N.° Rata</td>
<td>Quota Interessi</td>
<td>Quota Capitale</td>
<td>Capitale Residuo</td>
</tr>
<tr>
<td>
<?php
echo ($numrata);
?>
</td>
<td>0</td>
<td>0</td>
<td>
<?php
echo ($capres);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint);
?>
</td>
<td>
<?php
echo ($qtacap);
?>
</td>
<td>
<?php
echo ($capres1);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint1);
?>
</td>
<td>
<?php
echo ($qtacap1);
?>
</td>
<td>
<?php
echo ($capres2);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint2);
?>
</td>
<td>
<?php
echo ($qtacap2);
?>
</td>
<td>
<?php
echo ($capres3);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint3);
?>
</td>
<td>
<?php
echo ($qtacap3);
?>
</td>
<td>
<?php
echo ($capres4);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint4);
?>
</td>
<td>
<?php
echo ($qtacap4);
?>
</td>
<td>
<?php
echo ($capres5);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint5);
?>
</td>
<td>
<?php
echo ($qtacap5);
?>
</td>
<td>
<?php
echo ($capres6);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint6);
?>
</td>
<td>
<?php
echo ($qtacap6);
?>
</td>
<td>
<?php
echo ($capres7);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint7);
?>
</td>
<td>
<?php
echo ($qtacap7);
?>
</td>
<td>
<?php
echo ($capres8);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint8);
?>
</td>
<td>
<?php
echo ($qtacap8);
?>
</td>
<td>
<?php
echo ($capres9);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint9);
?>
</td>
<td>
<?php
echo ($qtacap9);
?>
</td>
<td>
<?php
echo ($capres10);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint10);
?>
</td>
<td>
<?php
echo ($qtacap10);
?>
</td>
<td>
<?php
echo ($capres11);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint11);
?>
</td>
<td>
<?php
echo ($qtacap11);
?>
</td>
<td>
<?php
echo ($capres12);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint12);
?>
</td>
<td>
<?php
echo ($qtacap12);
?>
</td>
<td>
<?php
echo ($capres13);
?>
</td>
</tr>
<tr>
<td>
<?php
echo (++$numrata);
?>
</td>
<td>
<?php
echo ($qtaint13);
?>
</td>
<td>
<?php
echo ($qtacap13);
?>
</td>
<td>
<?php
echo ($capres14);
?>
</td>
</tr>
</table>
</body>
</html>
Solo che il mio grande problema adesso è un altro:

Se l'utente vuole fare un preventivo di 40 anni con pagamento mensile, qui faccio notte ora che metto tutte le variabili e le intabello...c'è una soluzione? grazie!
 

Discussioni simili