видать не получится сделать строку в вещественное число, и все из-за неточности вычислений паскаля...
вот накидал тут прогу:
program fff;
var str:string;
i:integer;
function s2r(sval:string):real;
var p:integer;
i,svall:integer;
s,s1,ind:real;
begin
p:=pos(sval,'.');
s:=0;
ind:=1;
svall:=length(sval);
for i:=0 to p do begin
s:=s+StringToInteger(GetChar(sval,p-i-1))*ind;
ind:=ind*10;
end;
ind:=10;
for i:=p+1 to svall do begin
s:=s+StringToInteger(GetChar(sval,i))/ind;
ind:=ind*10;
end;
s2r:=s;
end;
begin
str:='564.36';
SetColor(255, 255, 255);
FillRect(0, 0, GetWidth, GetHeight);
SetColor(0, 0, 0);
drawText('Source: '+str, 0, 0);
drawText('Target: '+S2R(str), 0, 20);
repaint;
delay(50000);
end.
и что ты думаешь? вот ставлю последнюю 6, результат идет 59... ставлю 5, идет 49...