Why don't you try to multiply the values by 1000 to preserve otherwise lost precision before calculation and divide the result by 1000 just before you need the value for use with an engine function?
Would this help for you?
If I understand you right, you don't have problems with very large numbers but with position after decimal point.
By the given multiplication you simply move the decimal point to the right. This results in a higher precision but also limits in a way that you can not process large numbers, because you might get an overflow if you multiply a large number by 1000.
Well from the lowtech side, this would not be a multiplication by 1000 but a simple right shift or left shift operation.
This was a common technique at a time where integer operation where way faster than floating point operations.
I hope this works for you in this situation, too.
[edit]
But as you said, sometimes an external dll can help.
I had to do this some years ago to get a smooth camera movement along a Catmull-Rom spline with gamestudio. Whithout dll the movement was not smooth at all.
Last edited by slacer; 05/27/09 05:35.