Aktywne Wpisy

goferek +321
Jak zjesz mięso w piątek, to spłoniesz w piekle. Chyba, że pojedziesz do województwa obok, wtedy już nie.
#bekazkatoli #heheszki #patologiazewsi
#bekazkatoli #heheszki #patologiazewsi
źródło: 603071896_1304087495090798_3622571235041327090_n
Pobierz
MagicznyMariusz +34
źródło: 1000007068
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
Jeśli oczywiście wystarcza taka dokładność.
Epsilon maszynowy zmienia się od typu procesora?
Zauważyłem,
@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;