Aktywne Wpisy

Tobi2137 +1
#przegryw jaki film polecacie obejrzeć

Nie pamietam kiedy byłem ostatnio szczęśliwy lub choćby dnia kiedy czułem się szczęśliwy
#przegryw
#przegryw
źródło: image_picker_01B43E5C-3C75-4677-889F-4E46E93DA48F-441-0000005B8EF00C40
Pobierz



Naświetli ktoś po chłopsku porównanie dwóch wartości float?
To znaczy, nie robi się
float x;x = 1,2;
if (x==1,2) {
//tu coś
}
tylko:
float x;x = 1,2;
if (fabsf(a-b) < FLT_EPSILON) {
//tu coś
}
gdzie FLTEPSILON jest epsilonem maszynowym
Rozumiem - ale nie do końca. ( ͡° ͜ʖ ͡°)
Chodzi o to, że float może mieć trochę inną wartość jakiej się spodziewamy.
może się okazać, że x to 1,2000000002 a porównujesz z 1,2000000001... no to nie będzie równe.
ale jeśli różnica między x a porównywaną liczbą jest mniejsza od epsilona maszynowego (charakterystyczna wartość dla każdego typu procesora, mozna w matlabie sprawdzic sobie ;)) to +/- będziesz mógł założyć że są równe.
@defoxe: To tak jakbyś chciał zapisać 1/3 w systemie dziesiętnym mając do dyspozycji ograniczoną ilość miejsca na kartce - możesz napisać 0,333333333333333, ale nigdy nie uzyskasz dokładnie 1/3 tylko jakieś przybliżenie.
Bo przecież jeśli deklarowana jest zmienna i podawana jest jej wartość, to powinna być właśnie taka a nie inna.
@defoxe: Jeżeli taką wartość da się zapisać bezstratnie w systemie binarnym na określonej liczbie bitów to tak będzie, a jeżeli nie to kompilator wpisze tam najlepsze przybliżenie tej liczby.
Poza tym zazwyczaj liczby do porównania nie są wpisywane bezpośrednio tylko są to wyniki jakiś skomplikowanych obliczeń. Co więcej zmienna float ma "bardzo
Jeśli oczywiście wystarcza taka dokładność.
Epsilon maszynowy zmienia się od typu procesora?
Zauważyłem, że
#define FLT_EPSILON 1.19209290E-07Fnatomiast zakres float -3.4E38 do 3.4E38
To niesamowite w sumie, że na takich zakresach
1 + ε = 1
@
@MikelThief: prawdę mówiąc - nie. Dla jasności - to tylko moja ciekawość. Nie jestem "zawodowcem" ( ͡- ͜ʖ ͡°)
Ale na IEE754 zerknę.
http://cpp-polska.pl/post/porozmawiajmy-o-pieniadzach-czyli-standard-ieee-754-w-praktyce
@defoxe: To nie robi tego czego się spodziewasz.
@dupasmoka: pisz proszę o co chodzi a nie jakieś... Domysły. W sumie to chyba powinno być x=1,2f;