"Jeff" wrote:
> t1 = 1.00407412390531
> t2 = 1.00407412378365
> t1 is the wrong answer and t2 is the correct answer.
> Why is the function giving the wrong answer?
First, you should identify the version of Excel that you are using. I see
no difference with my version of Excel, Office Excel 2003, at least when I
use msgbox to look at t1 and t2.
> Sub NewFuntio(temp)
> Dim t1,t2 As Double
> t1 = (temp + 1) ^ (1 / 12)
> t2 = 1.05^(1/12)
Try changing the "dim" declaration to:
dim t1 as double, t2 as double
which I suspect is your intent.
As you have written, t1 is declared a variant, not a double. I suspect that
in your version of Excel, variants that contain floating point numbers are
treated as "single", double. I was unable to duplicate your results exactly
by forcing t1 to be type single, but that might be because I am not being
careful with the type of intermediate computations. Nonetheless, I do get a
difference when I store t1 into a double (t3).
Bookmarks