2012-06-23 10 views
9

W języku C# mam to:C# Math.cos (podwójne) zwraca błędną wartość

double Cos = Math.Cos(32.471192290848492); //Equals 0.49299653250335213 

Ale kiedy to zrobić w kalkulatorze otrzymuję ten

(0.745476752872050588) 

Dlaczego powrocie niewłaściwym wartość?

+1

To jest duplikat http://stackoverflow.com/q/1564207/1071834. Być może powinny one zostać połączone, a pytanie i odpowiedź rozwinięte, aby objąć wszystkie główne operacje trywialne, aby uniknąć przyszłych duplikatów. – dodexahedron

+0

Możliwy duplikat [C# - Dlaczego Math.Atan (1)! = Cokolwiek w pobliżu 45] (https://stackoverflow.com/questions/1564207/c-sharp-why-is-math-atan1-anything-near- 45) –

Odpowiedz

5

Prawdopodobnie masz mylące stopnie z radianami. Większość kalkulatorów używa stopni, podczas gdy większość języków programowania jest skonfigurowana do używania radianów.

14

Math.Cos spodziewa się kąta w radianach. Podejrzewam, że twój kalkulator działa w stopniach.

Powinieneś być w stanie uzyskać tę samą odpowiedź poprzez przeliczenie wartości w stopniach na radiany:

double angleInDegrees = 32.471192290848492; 
double cos = Math.Cos(angleInDegrees * (Math.PI/180.0)); 
+0

To wydaje się nie działać. Dostaję 0,49 w C#. I otrzymuję 0,84 w kalkulatorze systemu Windows. – Matt

+0

@Matt Spróbuj ponownie, to jest problem (i kod Reeda działa.) – dlev

+0

@Matt Zwraca 0,84 zgodnie z oczekiwaniami. CopyPaste the code. – SimpleVar

4

ponieważ Math.Cos prace w radianach i kalkulatora w stopni.

Powiązane problemy