[ doomed @ 19.04.2004. 21:36 ] @
recimo imamo jednu naivnu funkciju koja prebacuje string u realne brojeve nesto tipa StrToInt funkcije: Elem f-ja izgleda ovako: function StrToReal( arg : string ) : real; var rez : real; i : integer; levo, desno : string; li, di : real; zarez : integer; begin zarez := pos('.', arg); if zarez = 0 then begin rez := StrToInt(arg); Result := rez; end; levo := ''; for i := 1 to zarez-1 do levo := levo + arg; desno := ''; for i := zarez +1 to length(arg) do desno := desno + arg; li := StrToint(levo); di := StrToInt(desno); while di > 1 do di := di/10; rez := li + di; Result := rez; end; negde u kodu funkcija se poziva sa kolicina := StrToReal(Edit1.Text); {kolicina je tipa real} gde je TEXT = '0.53'; Zasto ovo ne valja? zato sto kolicina ima vrednost 0.5299999137 iako se lepo u dibageru vidi da je rez := 0.53... Ima li neko ideju o cemu se ovde radi i kako ovo prevazici? |