Disclaimer: Ik ben geen programmeur, al zat ik wel vroeger te basic'en op de C=64, en daarna op de PC met GWBASIC, en toen QuckBasic, om vervolgens wat marco's te bouwen binnen MS-Office met VBA. Ik kan simpele code lezen, en snappen wat er staat, om dat als voorbeeld te gebruiken en uit te bouwen om dat ik for-lussen en while-loops te zetten om berekeningen te maken, om zo na 1 jaar een verwacht bedrag te hebben op een spaarrekening waar elke maand de rente op uitgekeerd wordt.
Ik heb de formule opgezocht om het maandbedrag uit te rekenen voor een Persoonlijke Lening. En dat zijn gewoon geen grappige bedragen, want je betaalt je blauw aan rente. Nou, ik kan die lening ook wel verstrekken en dan is die lening bij mij vele malen goedkoper, want ik reken eerst een rendement uit wat ik op een spaarrekening zou krijgen met de zelfde looptijd.
2.500 euro lenen tegen 12,5% rente op jaarbasis met een looptijd van 36 maanden Dat kost je 82,84 euro per maand en na 3 jaar heb je 2.982,24 betaalt om iets van 2.500 te kopen. Dat is voor de bank een rendement van ruim 6%.
2.500 euro 3 jaar vast zetten in een deposito met een rente van 3% per jaar rente op rente maandelijks is ook een simpele formule: 2.500 * (1 + (3 / 1200)) ^ 36 = 2.735,13 Afronden naar boven: 2.736 euro, oftewel: 76 euro per maand.
Vervolgens heb ik daar dan de rente die over de schuld betaalt moet worden, en die zoek ik op in een while-loop, er daar gaat er iets mis, maar ik heb werkelijkwaar geen idee wat er mis gaat, en waarom die while-loop niet stopt.
Op het moment dat in die while-lus $tb 76 is, en dus gelijk is aan $term, stopt die while-lus niet, die wordt endless, en blijft maar 76 op m'n scherm gooien, en ik heb echt geen idee waarom dat is, en wat ik hier aan moet doen.
In die while-lus heb ik natuurlijk een controle zitten, want als $tb hoger is dan $term, is de rente waarmee ik "formule hiero" te hoog, en moet ik een stapje terug. Dus $rekenrente = $rekenrente - $x; $x = $x / 10; $rekenrente = $rekenrente + $x; Of te wel, ik ga van 6% rente naar 7% rente, 7% rente is te hoog, dus terug naar het vorige getal, en dan $x delen door 10, en dan heb ik m'n eerste decimaal, en dat moet dan net zolang doorgaan tot $tb 76 is, om vervolgens een rekenrente van 6.1166345495% te krijgen wat overeenkomst met een termijnbedrag van 76 euro. Afgerond naar 2 decimalen is dat dan 6,12%.
2.500 lenen, 6,12% rente, looptijd 36 maanden: 76 euro per maand.
Ik heb nu in de while-lus een teller gezet dat bij elke keer dat ik $x deel door 10, ik een decimaal aan het toevoegen ben, daar een limiet opgezet dat de while-loop een break geeft als ik op de 10 decimalen zit, zodat die loop niet endless wordt.
Ik heb dus ook een teller gezet in de lus, en als ik het naar m'n scherm gooi heb ik die 76 euro al met 45 berekeningen, en pas bij de 60ste berekening wordt die break getriggerd omdat ik dan de 10 decimalen heb.
Als ik de manual van PHP er bij pak voor intergers: https://www.php.net/manual/en/language.types.integer.php en ik kijk naar Example 3, dat een vardump(int) ik niks heb omdat er geen decimalen zijn, en dat er wel decimalen zijn als het een float is.
Ik heb geen idee waar mijn fout zit. Ondanks dat die routine perfect werkt vanwege die break als ik 10 decimalen heb vanwege een teller, wil ik toch weten waar ik een (denk)fout heb gemaakt.
NB: Liever geen voorgekauwde code geven, een zoekterm die ik in google kan gooien heb ik meer aan, want daar leer ik dan van
Ik heb de formule opgezocht om het maandbedrag uit te rekenen voor een Persoonlijke Lening. En dat zijn gewoon geen grappige bedragen, want je betaalt je blauw aan rente. Nou, ik kan die lening ook wel verstrekken en dan is die lening bij mij vele malen goedkoper, want ik reken eerst een rendement uit wat ik op een spaarrekening zou krijgen met de zelfde looptijd.
2.500 euro lenen tegen 12,5% rente op jaarbasis met een looptijd van 36 maanden Dat kost je 82,84 euro per maand en na 3 jaar heb je 2.982,24 betaalt om iets van 2.500 te kopen. Dat is voor de bank een rendement van ruim 6%.
2.500 euro 3 jaar vast zetten in een deposito met een rente van 3% per jaar rente op rente maandelijks is ook een simpele formule: 2.500 * (1 + (3 / 1200)) ^ 36 = 2.735,13 Afronden naar boven: 2.736 euro, oftewel: 76 euro per maand.
Vervolgens heb ik daar dan de rente die over de schuld betaalt moet worden, en die zoek ik op in een while-loop, er daar gaat er iets mis, maar ik heb werkelijkwaar geen idee wat er mis gaat, en waarom die while-loop niet stopt.
PHP:
1
2
3
4
5
| $term = 76; while ($tb <> $term) { $tb = formule hiero; echo "$tb<br>"; } |
Op het moment dat in die while-lus $tb 76 is, en dus gelijk is aan $term, stopt die while-lus niet, die wordt endless, en blijft maar 76 op m'n scherm gooien, en ik heb echt geen idee waarom dat is, en wat ik hier aan moet doen.
In die while-lus heb ik natuurlijk een controle zitten, want als $tb hoger is dan $term, is de rente waarmee ik "formule hiero" te hoog, en moet ik een stapje terug. Dus $rekenrente = $rekenrente - $x; $x = $x / 10; $rekenrente = $rekenrente + $x; Of te wel, ik ga van 6% rente naar 7% rente, 7% rente is te hoog, dus terug naar het vorige getal, en dan $x delen door 10, en dan heb ik m'n eerste decimaal, en dat moet dan net zolang doorgaan tot $tb 76 is, om vervolgens een rekenrente van 6.1166345495% te krijgen wat overeenkomst met een termijnbedrag van 76 euro. Afgerond naar 2 decimalen is dat dan 6,12%.
2.500 lenen, 6,12% rente, looptijd 36 maanden: 76 euro per maand.
Ik heb nu in de while-lus een teller gezet dat bij elke keer dat ik $x deel door 10, ik een decimaal aan het toevoegen ben, daar een limiet opgezet dat de while-loop een break geeft als ik op de 10 decimalen zit, zodat die loop niet endless wordt.
Ik heb dus ook een teller gezet in de lus, en als ik het naar m'n scherm gooi heb ik die 76 euro al met 45 berekeningen, en pas bij de 60ste berekening wordt die break getriggerd omdat ik dan de 10 decimalen heb.
Als ik de manual van PHP er bij pak voor intergers: https://www.php.net/manual/en/language.types.integer.php en ik kijk naar Example 3, dat een vardump(int) ik niks heb omdat er geen decimalen zijn, en dat er wel decimalen zijn als het een float is.
Ik heb geen idee waar mijn fout zit. Ondanks dat die routine perfect werkt vanwege die break als ik 10 decimalen heb vanwege een teller, wil ik toch weten waar ik een (denk)fout heb gemaakt.
NB: Liever geen voorgekauwde code geven, een zoekterm die ik in google kan gooien heb ik meer aan, want daar leer ik dan van
Ey!! Macarena \o/