Lo cierto es que acabo de hacer la siguiente prueba y me devuelve el valor correcto:
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
TMatrix : array[1..10] of Real;
Val:Variant;
begin
TMatrix[1]:=40.3343444;
Val:=TMatrix[1];
Edit1.Text:=FormatFloat(',0.0000',Val);
end;
¿Estás seguro de que la matriz contiene los valores que dices?
Un saludo.