Witam,
zapewne dla osób programujących na liczbach zmiennoprzecinkowych to błachostka, ale ja nie mam w tym doświadczenia. Poniżej kod małej, lamerskiej procedurki pokazującej o co mi chodzi:
procedure TForm1.Button1Click(Sender: TObject);
var
calosc : integer;
dziesietna : integer;
lancuch : string;
suma : single; //extended
licznik : integer;
begin
randomize();
suma:= 0;
for licznik:= 0 to 1000 do
begin
calosc:= random(11);
dziesietna:= random(100);
lancuch:= IntToStr(calosc)+','+IntToStr(dziesietna);
suma:= suma + StrToFloat(lancuch);
Memo1.Lines.Add(FloatToStr(suma));
end;
end;
Dlaczego kiedy operuję na zmiennej typu EXTENDED wszystko jest oki, a kiedy zmienię ją na SINGLE to program wyrzuca śmieci po przecinku? (kiedy dam real to większość jest ok, ale czasem też się śmieci zdarzą).
Nie ukrywam, że używanie extended jest dla mnie co najmniej niewykonalne ze względu na operowanie gigantycznymi ilościami danych (dane giełdowe).
JEŻELI ZNASZ ODPOWIEDŹ DOBRY CZŁOWIEKU, PROSZĘ PODZIEL SIĘ. Wiem, że dla niektórych to 'pikuś', ale ja nigdy nie siedziałem we 'flołtach' w żadnych ze znanych mi języków.