Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

TRUNC ne radi kako treba

[es] :: Pascal / Delphi / Kylix :: TRUNC ne radi kako treba

[ Pregleda: 1216 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

00000110001

Član broj: 22138
Poruke: 38
*.touchit.at.



Profil

icon TRUNC ne radi kako treba11.02.2009. u 10:44 - pre 185 meseci
pozdrav
ako je vec bilo govora o ovoj temi moze li mi neko samo link dati.
imam totalno jednostavan proble.
code izgleda ovako
Code:

var
e, k: double;
begin
  e:=0;
  e:=e+1.1;
  e:=e+1.1;
  e:=e+1.1;
  e:=e+1.1;
  e:=e+1.1;
  e:=e+1.1;
  e:=e+1.1;
  e:=e+1.1;
  e:=e+1.1;
  e:=e+1.1;
  {sad je e=11}
  k:=trunc(e);
  {a ovdje je k=10}
end;

nisam bas siguran da razumijem u cemu je ovdje fora, mozda ovo "e=11" nije ustvari 11 nego 10,9999999999999... ili tako nesto :)

ili ako postoji neka druga funkcija, sa kojom bih mogao da odbacim vrijednosti poslije zareza tj. da dobijem integer (ali ne nesto kao ROUND).
havala unaprijed
 
Odgovor na temu

sanja2010
Sanja Popovic
Cambridge, MA, USA

Član broj: 81666
Poruke: 286
89.110.206.*

Sajt: chvarciikavurma.blogspot...


+3 Profil

icon Re: TRUNC ne radi kako treba11.02.2009. u 11:43 - pre 185 meseci
Citat:
nisam bas siguran da razumijem u cemu je ovdje fora, mozda ovo "e=11" nije ustvari 11 nego 10,9999999999999... ili tako nesto :)

Upravo to. Dolazi do sitne greske pri konverziji u binaran broj i onda ce to procesor da ima kao 10.999999nesto :) Trunc kasnije radi svoj posao, odsece decimale, pa ostane 10. Mozes e i k da deklarises kao extended umesto double.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: TRUNC ne radi kako treba

[ Pregleda: 1216 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.