Funkcje trygonometryczne, radiany

0

Witam.

Dla 44 stopni, tan(r)==0.965689. Przy instrukcji if dokonuje porównania i zwraca fałsz.

Czym mógłbym prosić, aby ktoś wytłumaczył dlaczego nie zwraca prawdy?

#include <stdio.h>
#include <math.h>

int alpha;
float r;

int main()
{
    printf("Podaj kat: ");
    scanf("%d", &alpha);
    r = alpha*0.01745329;
    printf("tg alpha: %f\n", tan(r));

    if (tan(r)==0.965689)
        printf("Tak");
    else
        printf("Nie");

    return 0;

}

4

https://en.m.wikipedia.org/wiki/IEEE_754
Przy liczbach zmienoprzecinkowych musisz przyjąć pewienn próg błędu (Epsilon).
Wyszukaj w necie C how compare float

0

Liczby zmiennoprzecinkowe nie są przyjemna rzeczą dla procesora

1 użytkowników online, w tym zalogowanych: 0, gości: 1