OK, understood, but this is so easy to reproduce, just copy-paste these 3 lines and try.
Something bad happened to floating point numbers while I did not update (since 2012).
Code
program avrprommer;
{$NOSHADOW}
{ $W+ Warnings} {Warnings off}
Device = mega64, VCC=3.3;
Import SysTick, WatchDog;
From System Import Float;
Define
ProcClock = 6000000;
SysTick = 10; {msec}
StackSize = $0040, iData;
FrameSize = $0040, iData;
WatchDog = msec2000;
Implementation
{$IDATA}
{--------------------------------------------------------------}
{ Type Declarations }
type
{--------------------------------------------------------------}
{ Const Declarations }
{$EEPROM}
{--------------------------------------------------------------}
Structconst
{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
Var
st : string[16];
Float1, Float2 : float;
const
{--------------------------------------------------------------}
{ functions }
{ Main Program }
{$IDATA}
begin
// ----- DEBUG ----
Float1 := 0.1001;
Float2 := 2.0002;
st := FloatToStr(Float1:6:4) + ' ' + FloatToStr(Float2:6:4);
end avrprommer.