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

Problem: nE računa Cos(DegToRad(90))

[es] :: Pascal / Delphi / Kylix :: Problem: nE računa Cos(DegToRad(90))

[ Pregleda: 1641 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

borovac
127.0.0.1

Član broj: 29278
Poruke: 220
*.as54ze.bih.net.ba.



Profil

icon Problem: nE računa Cos(DegToRad(90))05.01.2005. u 13:32 - pre 234 meseci
Zašto mi slijedeća poruka ne pokazije 0 već 612303176911189E-17
Code:
ShowMessage(FloatToStr(Cos(DegToRad(90))));

probao sam i
Code:
showmessage(FloatToStr(cos(pi/2)));

ovo je cosuinus ugla 90° ili pi/2 i on je jednak nuli
 
Odgovor na temu

sasas
Saša Slavnić
radim za neke švabe

Član broj: 35478
Poruke: 617
*.zaslon-telecom.si.



Profil

icon Re: Problem: nE računa Cos(DegToRad(90))05.01.2005. u 14:01 - pre 234 meseci
Verovatno je u pitanju mala nepreciznost fp operacija, no big deal (osim ako ne programiras putanju prve ljudske misije na mars). Jednostavno zaokruzi rezultat:

ShowMessage(Format('%.5f', [Cos(DegToRad(90))]));

ss.
When something is hard to do, then it's not worth doing.
 
Odgovor na temu

neor
Nenad Orlovic

Član broj: 26828
Poruke: 74
*.metrohive.net.



Profil

icon Re: Problem: nE računa Cos(DegToRad(90))05.01.2005. u 15:51 - pre 234 meseci
Nije u pitanju nepreciznost fp operacija vec nacin cuvanja fp brojeva.
Za njih je obezbedjen samo konstantan broj bitova a Pi se ne moze zapisati sa konacnim brojem cifara tako da Pi/2 u paskalu nije matematicki Pi/2 pa ni sve sta iz toga sledi vise nije apsolutno tacno vec samo priblizno.

Jedino ti ostaje da za sopstvene potrebe odredis kolika ti je tacnost potrebna i zaokruzis na potreban broj decimala kao sto sasas predlaze.

Najvise problema obicno izazove poredjenje fp brojeva pa je dobro da za to napravis sopstvenu funkciju
na primer
Code:

function JeNula(X:Double;Err:Double=0.0001):Boolean;
begin
 Result := (Abs(X) < Err);
end;

 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.208.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: Problem: nE računa Cos(DegToRad(90))05.01.2005. u 23:32 - pre 234 meseci
u math.pas postoji CompareValue(value1, value2, epsilon: extended) koja vraca -1 ako je prvi manji od drugog - epsilon, 0 ako su jednaki sa tacnoscu epsilon i 1 u trecem slucaju
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Problem: nE računa Cos(DegToRad(90))

[ Pregleda: 1641 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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