Ваш код правильный (за исключением temp <-> tmp ???).
Только что проверил :
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
a : array[1..20] of string[20];
testvar : Double;
temp : string;
begin
a[3]:='5624.6873';
a[3][5]:=','; //исправить разделитель
ShowMessage(a[3]);
temp:=a[3];
testvar:=StrToFloat(temp);
ShowMessage(FloatToStr(testvar));
end;