[js] functie met machten

Pagina: 1
Acties:
  • 2.155 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • bolleh
  • Registratie: Juli 2001
  • Laatst online: 06:48
ik ben bezig met mn praktische opdracht voor informatica. ik moet deze funtie werkend krijgen:

(B+S)^(R*M)
b=beginsaldo
s=storingswaarde per maand
r=groeifactor per maand
m=aantal maanden

de gebruiker kan deze 4 variabelen dus invullen. als ik de ^ gebruik om met machten te rekenen werkt het niet meer :?
dat brengt me bij nog een probleem, de gebruiker moet een rentepercentage per jaar invoeren en daar moet ik een groeifactor per maand van maken, ook weer met machten, die funtie:

r1=(invoer3+100)/100
r=r1^(1/12)

invoer3 is dan dus de invoer van het rentepercentage.
nu gaat het werken met een ^ met javascript me dus niet goed af. kan iemand me verder helpen om nu goed met machten te werken?
de gehele code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<html>
<head>
<title>Bereken je saldo na een x aantal maanden!</title>
<script language=JavaScript>
//een scriptje om te berekenen hoeveel geld u heeft na x aantal maanden met een bepaald
//maandelijks te storten bedrag en rentepercentage
function bereken()
    {
    invoer1=parseFloat(document.rekeningen.getal1.value)
    invoer2=parseFloat(document.rekeningen.getal2.value)
    invoer3=parseFloat(document.rekeningen.getal3.value)
    invoer4=parseFloat(document.rekeningen.getal4.value)
    r1=(invoer3+100)/100
    r=r1^(1/12)
    }
</script>
</head>
<body bgcolor=#666666>
<font color=#bbbbbb>
<p>Voer uw beginsaldo, uw maandelijks te storten bedrag, het rentepercentage en het aantal maanden dat er gespaard wordt in en laat uitrekenen hoeveel geld u heeft!</p>
</font>
<form name=rekeningen>
<table width=100%>
<td width=50%>
<font color=#bbbbbb>
Voer het beginsaldo van uw rekening in<br>
Voer het maandelijks te storten bedrag in<br>
Voer de jaarlijkse rentepercentage in<br>
Voer het aantal maanden in dat er gespaard wordt
</font>
</td>
<td width=10%>
<input name=getal1 size=10 style="background-color: #555555; color: #bbbbbb; "><br>
<input name=getal2 size=10 style="background-color: #555555; color: #bbbbbb; "><br>
<input name=getal3 size=10 style="background-color: #555555; color: #bbbbbb; "><br>
<input name=getal4 size=10 style="background-color: #555555; color: #bbbbbb; ">
</td>
<td width=40%>
<font color=#bbbbbb>
Gulden<br>
Gulden<br>
Procenten<br>
maanden
</font<
</td>
</table>
<table width=100%>
<td width=50%>
</td>
<td width=50%>
<input onclick=bereken() type=button value=Bereken><input type=reset value=reset>
</td>
</table>
</form>
</body>
</html>

sorry voor de lange post

Acties:
  • 0 Henk 'm!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 08-08 17:07

RM-rf

1 2 3 4 5 7 6 8 9

snel gokje
code:
1
Math.pow()

maar check even in een goede javascript tut-je op het Math-object

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Acties:
  • 0 Henk 'm!

  • bolleh
  • Registratie: Juli 2001
  • Laatst online: 06:48
Op dinsdag 13 november 2001 14:12 schreef RM-rf het volgende:
snel gokje
code:
1
Math.pow()

maar check even in een goede javascript tut-je op het Math-object
hoe moet ik die Math.pow() dan precies moet gebruiken?
er staat in dit boekje dat ik een grondtal en exponent moet opgeven maar waar ik dat precies moet opgeven staat er niet :?

Acties:
  • 0 Henk 'm!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 08-08 17:07

RM-rf

1 2 3 4 5 7 6 8 9

iets als:
code:
1
if (invoer3!=0) r=Math.pow((invoer3)/100+1, 1/12)

overigens is het misschien overzichtelijker in zo'n functie met duidelijkere variabele namen te werken, getal1, getal2 of invoer1 en invoer2 kunnen tot fouten leiden.

variabelen als beginSaldo, maandBedrag maken qua leesbaarheid veel uit (is een klein sexueel intimidatietje van kleine geleedpotige nijvere werkers, maar kan zeer behulpzaam blijken)

edit:
nu ik even kijk, vraag ik me af of 1/12 geen ongeldige waarde is,
ik meen dat je geen getallen tot de macht 1/12de kunt verheffen
edit2: kan dus wel
javascript:alert(Math.pow(2,1/12))
retourneert 1.0594630943592953

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Acties:
  • 0 Henk 'm!

  • bolleh
  • Registratie: Juli 2001
  • Laatst online: 06:48
hmm bij wiskunde hebben we toch echt dit gekregen:
groeifactor per jaar omzetten naar groeifactor per maand:
g^(1/12)
g is de groeifactor
op mn rekenmachine werkt dit perfect

<edit>
nu ik eens zit te kijken zie ik dat mijn formule niet klopt
het moet zijn:
B+(s*r^(m))
b=beginsaldo
s=te storten bedrag per maand
r=groeifactor per maand
m=aantal maanden dat er gestort wordt
de rente wordt dus iedere maand bijgeschreven, kan iemand deze formule verifieren :?
mn geest is niet echt helder meer :(