Gå til innhold

C#: Feil i Math.Sin, bruker feil vinkelmål.


Anbefalte innlegg

Skrevet (endret)

Jeg driver å lager en kalkulator med litt mer enn de fire regneartene, og har støtt på et uventet problem. Math.Sin() funksjonen bruker feil vinkelmål.

Console.WriteLine(Math.Sin(30)); // Burde gitt 0,5

men istedenfor gir den 0,988 ettellerannet. Det samme problemet hadde jeg med en Casio kalkulator som vi bruker på skolen, men da kunne man endre til "degree" i instillingene. Det er altså noe lignende jeg må få gjort, men hvordan får jeg gjort det? Noen som har gjort dette før?

Endret av hockey500
Videoannonse
Annonse
Skrevet
Jeg driver å lager en kalkulator med litt mer enn de fire regneartene, og har støtt på et uventet problem. Math.Sin() funksjonen bruker feil vinkelmål.

Console.WriteLine(Math.Sin(30)); // Burde gitt 0,5

men istedenfor gir den 0,988 ettellerannet. Det samme problemet hadde jeg med en Casio kalkulator som vi bruker på skolen, men da kunne man endre til "degree" i instillingene. Det er altså noe lignende jeg må få gjort, men hvordan får jeg gjort det? Noen som har gjort dette før?

7041770[/snapback]

 

Kan du ikke bare bruke radianer da?

 

Math.Sin( Math.PI / 6 );

 

Eller:

private static double Deg2Rad( double degrees )

{

return degrees * Math.PI * 2 / 360.0;

}

 

static void Main( string[] args )

{

Console.WriteLine( Math.Sin( Math.PI / 6 ) );

Console.WriteLine( Math.Sin( Deg2Rad(30) ) );

Console.ReadKey();

}

Skrevet (endret)

det kan jeg sikkert, men når jeg ikke engang har lært om sinus og trigonometri på skolen er det ikke så enkelt å tenke seg til hvordan jeg skal regne det ut. aner ikke engang hva radianer er, men koden din funker sikkert.

 

EDIT: jada, ditt forslag funka flott :thumbup:

Endret av hockey500
Skrevet

Radianer er begrepet på grader, bare i radianer :)

 

2*PI = 360 grader

PI = 180 grader, derfor:

 

For å få grader til radianer:

Grader = Radianer * (PI * 180)

Radianer = Grader * (PI / 180)

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...