FloatToStr fails after starting DirectX


I have run into the stranges problem.
FloatToStr returns to many decimals after the 3D device is started.

Look at the sample code from WDirectX_Body.inc:

    // *** Create 3D device
    if not(FullScreen) then begin
   showmessage(floattostr(1234.5678));                     <= this one
returns 1234,5678 as it should
      r:=ID3D7.CreateDevice( GetCurrentD3DDevice.Guid,
    showmessage(floattostr(1234.5678));                     <= but this one
returns 1234,56781929153.
   end else begin
      r:=ID3D7.CreateDevice( GetCurrentD3DDevice.Guid,

This is causing problems for my and if someone know how to solve this, I
would be very grateful.