It appears that when using the String() function to convert a Real to string, extra digits are added. I am seeing the same issue in the debugger.
I set a Real to:
2.5E38
Then I convert to String:
2.500000072189495E+38
I passed the Real to a dll written in C and converted it to string there and got:
2.500000E+38
As you can see, there are extra digits that shouldn't be there.
I'm thinking of submitting a bug report but thought I would get some feedback first.