I think (no sure) that Excel use Double to make the calculation. Mixing Double and Single in calculation is bad. The way that 0.03 is stored in a Single is different from Double. To 0.0299999993294477 is a correct answer according to IEE standard, but is mathematically incorrect.
To avoid this problem, I would suggest that your change your DLL to use Double to make is calculation.
If you want more information on this, search for on "IEEE-754" or "IEEE-754 double precision floating point". I found this site
http://babbage.cs.qc.edu/courses/cs341/IEEE-754.html, it show you how the number are store in Single and Double so you can see the difference
Stéphane