[ engineer @ 06.03.2005. 13:21 ] @
Zna li neko nesto o greskama pri konverziji Single > Double u Delphiju(7)?
Napr. za sledeci kod
Code:
  a := 4.12345;
  b := RoundTo(a, -1);
  Label1.Caption := FloatToStr(a);
  Label2.Caption := FloatToStr(b);

za a, b: Double radi OK, znaci
a = 4.12345
b = 4.1

Ako su a i b: Single, dobija se:
a = 4.12344980239868
b = 4.09999990463257
[ morlic @ 06.03.2005. 18:18 ] @
Bila je ranije rasprava o toj temi:

http://www.elitesecurity.org/poruka/330316

Problem je u nacinu na koji se pamte decimalni brojevi, i zbog cega dolazi do gresaka. Double je precizniji od single tipa, ali singl moze biti koristan, sve zavisi za sta koristis.
Treba biti oprezan kod poredjenja decimalnih brojeva zbog pomenutih problema. Znaci u pitanju je binarna matematika i arhitektura procesora, Delphi nije kriv :).

Otkucaj double u vrhu prozora (pretraga) i pritisni dugme "Ovog foruma" za jos informacija.
[ engineer @ 06.03.2005. 18:37 ] @
Thanx, znam da je bilo nesto na tu temu, ali nisam nasao, tj nisam se dovoljno potrudio da nadjem (nedeljom sam lenstina )