eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingBłędny epsilon - this is not a bug, this is ?Re: Błędny epsilon - this is not a bug, this is ?
  • Data: 2012-11-06 15:54:28
    Temat: Re: Błędny epsilon - this is not a bug, this is ?
    Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 2012-11-06 14:55, AK pisze:
    > Użytkownik "Roman W" <r...@g...com> napisał:
    >
    >> Nie jestem przekonany do tego, ze tak sie powinno robic ZAWSZE. Jezeli
    >> mam kod:
    >
    >> if (a >= 0) {
    >> b = sqrt(a);
    >> } else {
    >> // zglos blad ze a ujemne
    >> }
    >
    >> to zastepowanie "a >= 0" przez "a >= EPS" nie ma sensu.
    >
    > Nie a >= EPS ale: a >= -EPS
    > Ma sens.
    >
    > PS: Nigdy nie dostales z banku ponaglenia, ze masz natychmiast doplacic
    > -0.00 zl ?

    Ale ujemne zero ani ujemna liczba float nie spełnia x>0!
    Może problem był w tym, że ten warunek sprawdzano zbyt
    wcześnie, potem robiąc obliczenia, które gubiły dokładność.


    Ale ja nie o tym chciałem...


    > a == b fabs(a - b) <= EPS
    > a != b fabs(a - b) > EPS

    To trochę bez sensu.

    Raz a i b są rządu 10^50, za drugim razem
    rzędu 10^-30.
    I obie różnice mam badać tym samym epsylonem?
    Ale dla pierwszej pary powinien być w okolicy
    10^36, a w drugiej 10^-44 :)

    Chyba miałeś na myśli coś w rodzaju

    a == b fabs(a - b) <= EPS * (a+b)
    a != b fabs(a - b) > EPS * (a+b)


    pzdr
    bartekltg

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: