
Originally Posted by
M100C
All,
This is more of a general programming question, but I am posting to this
group to see if I can get help with the answer.
I have a public function that sums the future values (fv) of investments,
using a given rate of return (r). For example, the syntax is "fv(r)", where
"fv(0.03)" would return the future values at an annual growth rate of 3%.
Now, suppose the value returned is 30,000 but the actual value I was
expecting was 50,000 (val). I need a procedure to: 1) increment r, 2) pass
it to fv, and 3) iterate through 1 and 2 until the fv function returns a
value "close to" val.
What I have so far (see below) works well, but is ugly. Is there a more
elegant way to do this iteration?
Thanks,
Chris
VBA:
'Start by guessing at 3%
s = 0.03
If fv(s) < val Then
Do
'increment by whole percents
s = s + 0.01
Loop Until fv(s) > val
'oops ... too far ... back out a percent
s = s - 0.01
Do
'increment by a tenth percent
s = s + 0.001
Loop Until fv(s) > val
'oops ... too far ... back out a tenth percent
s = s - 0.001
Do
'increment by a hundredth percent
s = s + 0.0001
Loop Until fv(s) > val
'oops ... too far ... back out a hundredth percent
s = s - 0.0001
Else
' Code here if guess is too high
End If
Bookmarks