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! :)
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
ho visto che usi la funzione floor() per l'arrotondamento, potresti eliminare quella per evitare calcoli sfasati
 

moncicci

Nuovo Utente
4 Gen 2005
8
0
0
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?
 

moncicci

Nuovo Utente
4 Gen 2005
8
0
0
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
Autore Titolo Forum Risposte Data
L Aiuto con DataGridView Visual Basic 1
K Aiuto con file audio in html HTML e CSS 1
R Aiuto con le query MS Access 2
G Aiuto con htaccess e rewriterule PHP 0
M Aiuto con inserimento immagini WordPress 6
G Aiuto HTML, collegamento con un bottone a una <div> di un' altra pagna HTML e CSS 5
motleyrulez Aiuto con un ciclo PHP 0
maicol07 Python - Tkinter - Aiuto con pulsanti e tuple Programmazione 0
L [Javascript] aiuto non riesco a inviare in get dal server web locale su altervista con httpRequest Javascript 0
N Mi serve aiuto con "Snake". C/C++ 1
F ciao, sono ferro e ho bisogno di aiuto per problemi con la mail di alice.it Presentati al Forum 1
M Aiuto: problema con il mio TP-Link range extender Reti LAN e Wireless 0
L [HTML] Aiuto con immagini random HTML e CSS 1
S PHP: Aiuto con upload immagini che si auto tuotano PHP 24
A scambio lavoro per aiuto con android Sviluppo app per Android 0
I Form/aree di testo con input da lista di nomi!Chiedo aiuto!! HTML e CSS 3
M Aiuto con script di ricerca video youtube data api v3 Javascript 1
I attributo con IF aiuto PHP 3
ecosito Aiuto con la traduzione in italiano per capire come installare questo JavaScript jQuery 0
F Aiuto: impossibile la mappatura di un'immagine con Dreamweaver CC2015 HTML e CSS 8
D aiuto con query PHP 1
J Aiuto per localstorage con jquery/js/json Javascript 4
Marco_88 Aiuto con istruzione INSERT Database 8
M Aiuto su come procedere con un ciclo foreach PHP 4
R Redirect 301 con htaccess non funziona. Aiuto! PHP 1
I database con visual studio 2012 aiuto Database 0
L Aiuto con l'html di una pagina web HTML e CSS 0
V Aiuto con swipe e DB Sviluppo app per Android 2
N Aiuto con html nascondere i media HTML e CSS 4
T Aiuto con script PHP PHP 0
N ciao a tutti ho bisogno di aiuto con l'estensione mysqli?? MySQL 0
I Aiuto uso Nivo Slider con javascript jQuery 2
L problema con la funzione header!!! AIUTO! PHP 24
S Aiuto con PHP! PHP 4
D Aiuto Ajax da PHP con codifica json Ajax 0
K AIUTO con Apache WEBDAV E MOD_DAV Joomla 0
S aiuto con le query PHP 0
D aiuto con pag di login in php PHP 1
S [RISOLTO]aiuto, non riesco afar funzionare il camp odi ricerca per un DB con PHP PHP 5
S aiuto con query MySQL 10
P Aiuto con onclick Javascript 2
W Aiuto per menù fatto con immagini e relativo sottomenù HTML e CSS 2
D Chiedo aiuto con questo codice PHP 0
L Sito con mamp AIUTO PHP 12
M Aiuto con questo script PHP 21
D Aiuto con Ajax e pagine incluse nei DIV Ajax 1
L verifica mail in db con jquery e ajax. Aiuto jQuery 9
P Aiuto con Prestashop CMS (Content Management System) 3
Z Aiuto con l'input PHP 0
P Aiuto con query "SELECT" PHP 6

Discussioni simili