Avatar billede biohazard_666 Nybegynder
04. maj 2004 - 20:02 Der er 7 kommentarer og
2 løsninger

Matematik - Rentes regning

Hejsa Eksperter :)

Jeg er ved at lave et udregnings program. Det skal kunne udregne hvad man skal betale/ hvad man har på sin konto efter man har fået renter... Jeg kender denne formel:
K(1+R)^År/Mnd
K = Kapital
R = Rente (i Decimal)
År/Mnd = Antal år / måneder der går indtil man betaler tilbage/hæver sine penge...

Je har prøvet at bruge den formel, men den siger 'Expected Array'.. Min kode er:

Private sub cmd1_click()

Dim K as integer
Dim R as integer
Dim Aar as integer
K = txtKapital.text
R = 100 / txtRente.text
Aar = txtAar

txtResultat = K ( 1 + R ) ^Aar

End sub

... Men koden virker ikke :(

Ville bare høre om jeg kan gøre det sådan, eller om jeg skal bruge en anden måde??
Avatar billede fgsupermand Nybegynder
04. maj 2004 - 22:49 #1
Det her kan du ikke skrive, du manger et tegn mellem "K" og "( 1 + R )"
txtResultat = K ( 1 + R ) ^Aar 

det er også "bedst" at skrive txtResultat.Text = "..."
Avatar billede martin_moth Mester
05. maj 2004 - 09:12 #2
Der er flere fejl:

K er en variabel af typen String
Det samme er Aar

Tænk på, at en textbox indeholder TEKST, og skriver du fx. "2", bliver det ikke opfattet som tallet værdien af tallet 2, men som en tekststring hvor der står bogstavet 2.

Du er altså nødt til at konvertere til taltyper, før du kan regne. Det kan du gøre med Val, med CInt osv. Nu ved jeg ikke om du arbejder med decimaltal eller heltal, derfor bruger jeg bare Val() hvor jeg er i tvivl.

Følgende virker!

Dim K as integer
Dim R as integer
Dim Aar as integer
K = val(txtKapital.text)
R = 100 / val(txtRente.text)
Aar = cInt(txtAar.Text)

txtResultat.text = K*(1+R)^Aar
Avatar billede fgsupermand Nybegynder
05. maj 2004 - 10:45 #3
martin_moth:
VB konvertere selv fra string til integer, så det er derfor ikke en fejl, hvis det skal laves helt rigtig så skal der også være error handler på
Avatar billede slo Nybegynder
05. maj 2004 - 13:10 #4
Din fejl ligger i renten - du skal dividere med 100 (og ikke omvendt som du gør nu!)
Avatar billede biohazard_666 Nybegynder
05. maj 2004 - 14:34 #5
Hejsa.... Har prøvet martin_moth's model, der var bare en lille ting, noget med at vb selv afrundede renten (når den var i decimal, fx 0,25) men det har jeg selv ordnet...

Slo ->> smid lige et svar, syntes også du fortjener lidt point :)
Avatar billede slo Nybegynder
05. maj 2004 - 14:57 #6
:-)
Avatar billede martin_moth Mester
05. maj 2004 - 19:24 #7
fqsupermand:

Prøv at udregn følgende med VB:

Dim MyString as String
MyString = "2.5"
msgbox 2*MyString
msgbox 2*val(MyString)

Du vil se, at det ikke giver samme resultat.

Men jeg kan godt se, at så længe der er talt om heltal, og folk ikke kommer til at indtaste bogstaver, behøver man ikke Val() og CInt() osv

Selv om jeg synes det er hæslig programmering at lade være :o)
Avatar billede fgsupermand Nybegynder
05. maj 2004 - 19:56 #8
martin_morth:

Dim MyString as String
MyString = "2.5"
msgbox 2*MyString
msgbox 2*val(MyString)

Du har helt ret i, at ovenstående vil lave 2 messageboxs med 2 forskellige resultater, men da bioharzard_666 bruger integer's til at gemme værdierne i, regnede jeg med han ville bruge heltal.

ps: til danske programmer(og andre internationale programmer) er det bedre at bruge CDbl("...") i stedet for val("...") da val kun genkender "." som decimal separator
Avatar billede biohazard_666 Nybegynder
05. maj 2004 - 20:47 #9
Så er der blevet givet point :)

<-*-*-*- SPØRGSMÅL LUKKET -*-*-*->
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester