Najlepsza odpowiedź
Liczby zmiennoprzecinkowe nie są dokładnie przechowywane w pamięci komputera. Dzieje się tak, ponieważ każda liczba zmiennoprzecinkowa jest przybliżana do najbliższej reprezentacji binarnej. Dlatego załóżmy, że mamy,
float a=0.87;
float b=0.87;
if(a==b){
printf("Equal \n");
} else {
printf("Not equal \n");
}
Szanse są wypisane „Nie równe”. Teraz mamy pytanie. Jak sprawdzić równość 2 liczb zmiennoprzecinkowych?
Tutaj pojawia się 1e-12. Różnica mniej niż 1e-12 między 2 liczbami zmiennoprzecinkowymi jest uważane za wystarczająco niskie, aby były równe. Dlatego w drugim makrze sprawdza, czy wartość bezwzględna a jest mniejsza niż 1e-12. Program może wyglądać następująco:
float a=0.87;
float b=0.87;
if(zero(a-b)){
printf("Equal \n");
} else {
printf("Not qqual \n");
}
Gwarantuje to wydrukowanie „Równe”.
Mam taką nadzieję pomaga.
Odpowiedź
Cóż, jeśli w ogóle go to nie obchodzi – nawet na tyle, żeby o tym porozmawiać – twoje zadanie jest niemożliwe.
Jeśli chce rozmawiać, ale nie chce patrzeć na kod lub uczyć się go, spróbuj z nim zagrać w tę grę: jesteś robotem bez autonomii. Jego zadaniem jest zmusić cię do wstania z kanapy, pójścia do kuchni i zrobienia czterech kanapek z masłem orzechowym i galaretką. Będzie musiał to zrobić, wydając ci angielskie polecenia.
Rozumiesz czynności takie jak „podejdź do” i „wyjmij nóż z szuflady”, więc nie musi ci mówić, jak poruszać każdym mięśniem, a ty rozumiesz, czym są przedmioty, więc nie trzeba zdefiniować „nóż”. Ale to jest granica twojego zrozumienia.
Upewnij się, że wykonujesz jego instrukcje dosłownie i każ mu zaczynać od nowa, za każdym razem, gdy rezultatem nie są cztery kanapki z PB&J.
„Wstań i idź do kuchni”
Wstajesz i podchodzisz do ściany oddzielającej kuchnię od salonu .
„Arg! Mam na myśli wstań i podejdź do wejścia do kuchni”.
Robisz to.
„Wyjmij chleb z szafki”
Szarpiesz za drzwi szafy, nie mogąc wyciągnąć z niej chleba.
„Otwórz drzwi!”
Otwierasz drzwiczki piekarnika.
„Mam na myśli otwórz drzwi szafki!”
Zrób to.
„Wyjmij chleb”.
Wyrzucasz chleb z szafki na podłogę w kuchni …