Pe scurt, atunci când se compară două flotoare cu origini necunoscute, alegerea unui epsilon care este valabilă este aproape imposibilă.
De exemplu:
Care este un epsilon bun când se compară distanța în mile între Atlanta GA, Dallas TX și un loc în Ohio?
Care este un epsilon bun când se compară distanța în mile între piciorul stâng, piciorul drept și calculatorul sub biroul meu?
EDIT:
Ok, primesc un număr destul de de oameni care nu înțeleg de ce nu știi ce epsilon e.
Înapoi în zilele vechi ale lorelor, am scris două programe care au lucrat cu NeverWinter Nights (un joc făcut de BioWare). Unul dintre programe a luat un model binar și la transformat în ASCII. Celălalt program a luat un model ASCII și la compilat în binar. Unul dintre testele pe care le-am scris a fost să iau toate modelele binare ale lui BioWare, să le decompilați la ASCII și apoi să reveniți la binar. Apoi am comparat versiunea binară cu versiunea originală de la BioWare. Una dintre problemele care au avut loc în timpul comparației a fost rezolvarea unor ușoare variații ale valorii în virgulă mobilă. Deci, în loc de a veni cu o grămadă de EPSILONS diferite pentru fiecare tip de număr de virgulă mobilă (vertex, normal, etc), am vrut să folosesc ceva de genul asta, comparativ cu două comparații. Astfel evitând întreaga problemă EPSILON multiplă.
Același tip de problemă se poate aplica pentru orice tip de software care procesează date terță parte și apoi trebuie să-și valideze rezultatele cu originalul. În aceste cazuri s-ar putea să nu știți nici măcar ce reprezintă valorile cu virgulă mobilă, trebuie doar să le comparați. Am intrat în această problemă cu software-ul nostru de automatizare industrială.
EDIT:
LOL, acest lucru a fost votat în sus și în jos de către diferiți oameni.
Voi fierb la această problemă, având în vedere două numere cu număr variabil , cum decideți ce epsilon să utilizați? Nu poţi.
Cum puteți compara 1e23 și 1.0001e23 cu un epsilon și comparați încă 1e-23 și 5.2e-23 utilizând același epsilon? Sigur, puteți face unele trucuri epsilon dinamice, dar acesta este întregul punct pentru compararea întregului (care NU necesită exactitate întregi).
Comparația întregului este capabilă să compare două flotoare folosind un epsilon relativ la amploarea numerelor.
EDIT
Steve, permiteți să vedeți ce ați spus în comentariile:
"Dar știi ce înseamnă egalitatea pentru tine ... Prin urmare, ar trebui să poți găsi un epsilon potrivit".
Transformați această declarație în jur pentru a spune:
"Dacă știi ce înseamnă egalitatea pentru tine, atunci ar trebui să găsești un epsilon potrivit".
Întregul punct la ceea ce încerc să spun este că există aplicații în care nu știm ce înseamnă egalitate în sensul absolut, astfel că trebuie să recurgem la o comparație relativă care este ceea ce încearcă să facă întreaga versiune.