Calvin,
>Third what?
This may explain why you have 1000 currency fields in your database. You may want to spend some time reading about database normalization.
>The real problem is that any time a currency data type is involved in ANY expression the result is a currency data type.
This is completely expected and documented. Promotion of data types from one type to another "higher" type occurs in every computer language I've ever used.