Springen naar inhoud


- - - - -
VS 2012

Aantal Jaren Berekenen

Compound interest

  • Log in a.u.b. om te beantwoorden
Er zijn 13 reacties in dit onderwerp

#1 ludo64

ludo64

    Rookie Developer

  • Leden
  • Pip
  • 30 berichten
    Laatst bezocht 25 jul 2019 15:42
  • LocatieTongeren

Geplaatst op 02 juni 2019 - 11:29

Hallo, ben al een paar dagen bezig maar krijg het niet opgelost.
De input is een bedrag en een interestrate, dan moet je het aantal jaren berekenen tot het bedrag verdubbeld is.
Het bedrag op het einde van elk jaar is (1 + interestrate) * het vorige bedrag.
Dit is mijn laatste versie:
Visual Basic Code:
Private Sub btnDetermine_Click(sender As Object, e As EventArgs) Handles btnDetermine.Click
Dim amount As Double = CDbl(txtAmount.Text)
Dim interestRate As Double = CDbl(txtInterestRate.Text)
Dim numYears As Integer = 0
Dim newAmount As Double = amount * ((1 + interestRate) / 100) + amount
Do
newAmount = newAmount * ((1 + interestRate) / 100) + newAmount
numYears += 1
Loop Until newAmount >= (amount * 2)
txtDoublingTime.Text = CStr(numYears)
End Sub


#2 Tatooine4691

Tatooine4691

    Starting Developer

  • Leden
  • 19 berichten
    Laatst bezocht vandaag, 12:00
  • LocatieNoord-Holland

Geplaatst op 02 juni 2019 - 15:05

Waarom kies je ervoor om 1+ interestRate te doen?
Als je interestrate 6(%) zou moeten zijn en het bedrag is 100 levert de uitkomst:

100 * (1+interestrate (6) = 7(!) /100) + 100 = 107 en niet 106 zoals gewenst
m.i. moet je schrijven
newAmount = amount * ((interestRate) /100 ) + amount

Hoop dat je hier iets mee kan.

#3 ludo64

ludo64

    Rookie Developer

  • Leden
  • Pip
  • 30 berichten
    Laatst bezocht 25 jul 2019 15:42
  • LocatieTongeren

Geplaatst op 02 juni 2019 - 15:24

Ja Tatooine4691, zo staat het vermeld in dat boek, ik heb niet ervoor gekozen: (1 + interestrate)

#4 Tatooine4691

Tatooine4691

    Starting Developer

  • Leden
  • 19 berichten
    Laatst bezocht vandaag, 12:00
  • LocatieNoord-Holland

Geplaatst op 02 juni 2019 - 19:26

Hoi Ludo,

ff flauw, ook in boeken kunnen fouten staan. :mrgreen:

Maar terug naar het probleem
Wat je wil is x% bij het oorspronkelijke getal optellen. laten we zeggen 6%
6% van 100 = 6.

Dus zoals beschreven: newAmount = amount * ((interestRate) /100 . Het antwoord hierop zou mi worden 6
Het totaal bereik je dan door er nog het amount bij op te tellen.

Klopt de uitvoering bij deze wijziging?

#5 ludo64

ludo64

    Rookie Developer

  • Leden
  • Pip
  • 30 berichten
    Laatst bezocht 25 jul 2019 15:42
  • LocatieTongeren

Geplaatst op 02 juni 2019 - 20:02

Nee hoor Tatooine4691, met een bedrag van 12000 aan 3 percent interest zou het 24 jaar duren om het bedrag te verdubbelen.
Met uw uitleg kom ik op 231 jaar.
Ik vermoed dat er iets niet klopt in de loop, maar weet niet wat.

#6 Tatooine4691

Tatooine4691

    Starting Developer

  • Leden
  • 19 berichten
    Laatst bezocht vandaag, 12:00
  • LocatieNoord-Holland

Geplaatst op 03 juni 2019 - 10:58

Als ik de berekening in excel laat maken dan zit ik na 24 jaar pas op een bedrag van 12.894,47 en nog lang niet op het bedrag van 24.000.

Bedrag 12000 rente 0,3%
Jaar 1 0,3% x 12000 rente 36,- eindbedrag 12036
Jaar 2 0,3% x 12036 rente 36,11 eindbedrag 12072
Jaar 3 0,3% x 12072 rente 36,22 eindbedrag 12108 etc etc

Kun jij laten zien hoe jij aan de 24 jaar komt, want dan wil ik ook graag van die bank gebruik maken ;-)

#7 ludo64

ludo64

    Rookie Developer

  • Leden
  • Pip
  • 30 berichten
    Laatst bezocht 25 jul 2019 15:42
  • LocatieTongeren

Geplaatst op 03 juni 2019 - 13:10

Heb een PrintScreen gemaakt, maar hoe plaats ik die hier ?
Als ik de formule van het boek gebruik (1 + interestrate), kom ik het eerste jaar uit op 156.

#8 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1164 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 04 juni 2019 - 14:04

Bericht bekijkenludo64, op 02 juni 2019 - 11:29, zei:

Visual Basic Code:
newAmount = newAmount * ((1 + interestRate) / 100) + newAmount

Je haakjes staan fout.

Het is:
Visual Basic Code:
1 + interestRate / 100
als je haakjes wil (niet nodig):
Visual Basic Code:
1 + (interestRate / 100)
Dus:
Visual Basic Code:
newAmount =  newAmount * (1 + intrestRate / 100)
Of:
Visual Basic Code:
newAmount *=  1 + intrestRate / 100


#9 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1164 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 04 juni 2019 - 14:07

Bericht bekijkenTatooine4691, op 03 juni 2019 - 10:58, zei:

Als ik de berekening in excel laat maken dan zit ik na 24 jaar pas op een bedrag van 12.894,47 en nog lang niet op het bedrag van 24.000.

Easy: 0.3% is niet hetzelfde als 3%

Bericht bekijkenludo64, op 02 juni 2019 - 20:02, zei:

Nee hoor Tatooine4691, met een bedrag van 12000 aan 3 percent interest zou het 24 jaar duren om het bedrag te verdubbelen.
3% op 12000 is dan ook 360 en niet 36

Bericht bekijkenTatooine4691, op 03 juni 2019 - 10:58, zei:

Kun jij laten zien hoe jij aan de 24 jaar komt, want dan wil ik ook graag van die bank gebruik maken ;-)
Verander van bank, want je wordt bestolen.

#10 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1164 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 04 juni 2019 - 14:10

Visual Basic Code:
Dim bedrag As Decimal = 12000
Dim interest As Decimal = 3
Dim jaar = 0
While bedrag < 24000
	jaar += 1
	bedrag *= 1 + interest / 100
End While
MessageBox.Show($"Bedrag na {jaar} jaar = {bedrag:F2}")


Inderdaad 24 jaar.

#11 Tatooine4691

Tatooine4691

    Starting Developer

  • Leden
  • 19 berichten
    Laatst bezocht vandaag, 12:00
  • LocatieNoord-Holland

Geplaatst op 04 juni 2019 - 17:07

Dirk,

Dank voor je scherpe reactie. Ergens ben ik van het padje afgeraakt en ben gaan rekenen met 0,3% ipv 3%.

Ik hoop dat Ludo hier nu ook verder mee kan.

#12 ludo64

ludo64

    Rookie Developer

  • Leden
  • Pip
  • 30 berichten
    Laatst bezocht 25 jul 2019 15:42
  • LocatieTongeren

Geplaatst op 04 juni 2019 - 18:37

Dank u Dirk, dit lijkt me beter, maar ik kom uit op 23 jaar ???
Dit is de aangepaste code:
Visual Basic Code:
Private Sub btnDetermine_Click(sender As Object, e As EventArgs) Handles btnDetermine.Click
Dim amount As Double = CDbl(txtAmount.Text)
Dim interestRate As Double = CDbl(txtInterestRate.Text)
Dim numYears As Integer = 0
Dim newAmount As Double = amount * (1 + interestRate / 100)
While newAmount < (amount * 2)
numYears += 1
newAmount *= 1 + interestRate / 100
End While
txtDoublingTime.Text = CStr(numYears)
End Sub


#13 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1164 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 05 juni 2019 - 15:27

Bericht bekijkenludo64, op 04 juni 2019 - 18:37, zei:

Dank u Dirk, dit lijkt me beter, maar ik kom uit op 23 jaar ???

Ja. Je begint niet met 12000, maar met 12360.
Voor je de loop begint reken je er al de intrest van 1 jaar bij:

Bericht bekijkenludo64, op 04 juni 2019 - 18:37, zei:

Visual Basic Code:
	Dim newAmount As Double = amount * (1 + interestRate / 100)
	While newAmount < (amount * 2)
		' ...


Oplossing: stel newAmount gelijk aan amount vóór de loop:
Visual Basic Code:
	Dim newAmount As Double = amount
	While newAmount < (amount * 2)
		' ...



#14 ludo64

ludo64

    Rookie Developer

  • Leden
  • Pip
  • 30 berichten
    Laatst bezocht 25 jul 2019 15:42
  • LocatieTongeren

Geplaatst op 05 juni 2019 - 16:16

Thx Dirk, je hebt gelijk, als newbie heb ik nog veel te leren precies.





Ook met taq VS 2012, Compound interest voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[VS 2012] Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)