>As I've discovered it's not the run-time afterall, it's fact that it's a the DLL (doesn't matter whether it's single or multi-threaded, tested both). Further, it's seems that the source of the data is part of the problem.
>
>Here's what I did:
>
>1. Created two small tables to hold the necessary data.
>2. Created a form will functions and properties to make the necessary calculations. There were two comparison functions. One with a straight evaluation of the two values returned. The other used VAL(TRANSFORM()) on the return values prior to the comparison.
>3. Tested the functions, and they worked fine
>4. Created a DLL with the same functions (copied and pasted from the form) and properties.
>5. Tested against the DLL. Similarly, the comparison without the VAL(TRANSFORM()) returned false. The one with returned true.
>6. Add a method to initialize the DLLs properties with literals.
>7. Repeated the test. Both functions returned true.
>
>So...
Interesting. So what would make a DLL perform math functions differently than a regular function call?