09. juni 2004 - 13:48Der er
12 kommentarer og 1 løsning
Cos og sin funktionerne opfører sig underligt
Hej
Jeg har lavet følgende program for at teste cosinus og sinus funktionerne i math.h:
#include <iostream> #include <math.h>
using namespace std;
int main() {
cout<<sin(90.0)<<endl; // Burde ud fra enhedscirklen give 1 cout<<cos(90.0)<<endl; // Burde ud fra enhedscirklen give 0 cout<<sin(45.0)*sin(45.0)+cos(45.0)*cos(45.0)<<endl; // Udfra phytagoras burde detteher give 1
system("pause"); return 0; }
Den eneste af de tsts' som jeg har lavet der lykkedes er den der tager udgangspunkt i pythagoras. Hvad er det lige helt præcis der sker?
sin(2*M_PI*90/360) passer det perfekt. Men gør jeg det samme med cos altså cos(2*M_PI*90/360) får jeg noget helt hen i været. Hvis jeg sætter min lommeregner til at gøre det samme passer det perfekt, også med cos.
hvis du indstiller hvordan din float skal udskrives fx. uden e-notation og med 6 decimaler (eller FLT_DIG) vil du sikkert få 0.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.