View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Ron Coderre Ron Coderre is offline
external usenet poster
 
Posts: 698
Default Format affects precision?

Don't confuse a "format" with a Type Declaration.

When you format a number as Currency....the result is the original value,
displayed with a dollar sign ($) and only 2 decimal places displayed. The
rest of the original value still exists....it's just not displayed.

When you declare a variable as Currency (Dim x as Currency)...VBA rounds the
original value to 4 decimal places THEN stores the resulting value.

Does that help?
***********
Regards,
Ron

XL2003, WinXP


"Caveman" wrote:

Apologies if this is well known, couldn't find any references to it.

It seems that setting a cell to currency format affects the precision
with which the cell's values are passed to VBA. For example:

Public Function TestDouble(dDouble As Double) As Double

TestDouble = dDouble

End Function

Then set cells:
A1: 0.123456789, formatted as currency, displayed to 15 decimal
points.
A2: =A1, displayed to 15 decimal points.

Precision as displayed shouldn't factor in, but is turned off just to
be sure.

TestDouble(A1) returns 0.1235
TestDouble(A2) returns 0.123456789
TestDouble(A1*1) returns 0.123456789 (!!)

Yikes. Is there any way to turn this "feature" off, so that formatting
a cell does not change the precision of calculations based on it? I
tried to find documentation for this behavior but didn't have any luck
there either.

Thanks...