2012-10-19 12 views
37

Laut Wolfram Mathematica: cos (50) = ,6427876096865394;Math.cos() gibt falsches Ergebnis

Aber dieser Code in Java:

System.out.println(Math.cos(50)); 

gibt ,9649660284921133.

Was ist los mit java.lang.Math?

Antwort

89

Math.cos() erwartet, dass der Parameter im Bogenmaß angegeben wird. Dadurch wird das Ergebnis zurück Sie brauchen:

Math.cos(Math.toRadians(50)); 
+2

+1. Nur als Referenz, da OP über Wolfram sprach: http://www.wolframalpha.com/input/?i=cos%2850rad%29 –

+0

Gibt es eine Version von Math.cos() in Java, die mit Grad arbeitet, oder tut müssen wir uns immer daran erinnern, Grad manuell in Radiant umzurechnen? –

3

Degrees <> Radiant ...........

+0

Was diese Antwort bedeutet? Grad ist äquivalent zu Radiant ... aber '1 Grad = 0.0174532925 Radiant' – Manu

+2

@Manu Der' aber' Teil in deinem Kommentar ist, warum sie nicht gleichwertig sind;) Es ist wie zu sagen, dass Kilos und Stein äquivalent sind. Sie messen sicher die gleiche Menge, aber auf unterschiedliche Weise. – phant0m

13

Math.cos() verwendet Radiant, so dass Ihr zu bekommen führen erwartet Sie tun müssen,

System.out.println(Math.cos(Math.toRadians(50))); 
3

Die meisten trigonometrischen Java-Funktionen erwarten, dass Parameter im Bogenmaß angegeben werden. Sie können Math.toRadians() verwenden, um zu konvertieren:

System.out.println(Math.cos(Math.toRadians(50))); 
-2

Für mich ...

0,9649660284921133
0,9649660284921133
0,6427876096865394
0,6427876096865394

System.out.println(Math.cos(50)); 
System.out.println(Math.cos(new Double(50))); 
System.out.println(Math.cos(Math.toRadians(50))); 
System.out.println(Math.cos(Math.toRadians(new Double(50)))); 

kehrt

http://www.wolframalpha.com/input/?i=cos%2850deg%29

cos(50deg) gleiche Ergebnis wie cos(50) geben ... so Wolfram Grad ist standardmäßig.

+0

Wolfram Alpha verwendet standardmäßig keine Grade! Vielmehr versucht es, clever zu sein. – phant0m

+0

Was ist Wolfram Alpha Standard, Grad oder Radiant oder ...? Gibt es eine andere Basis? Kannst du mehr darüber streiten, was du schreibst? Dein Kommentar gibt keine Informationen! Meine Antwort antwortet nicht auf die erste Frage, also ok für "-1" -Flag, aber es gibt mehr nützliche Informationen über diese Konversation, denke ich. – Manu

+0

Wolfram Alpha versucht zu erraten, ob Ihre Eingabe in Bogenmaß oder Grad ist: Wenn der Wert unter 5 liegt, interpretiert er es als Radiant, wenn es größer oder gleich 5 ist, interpretiert es als Grad;) Ich habe mir die Freiheit genommen um die Ausgabe zu korrigieren, die Java tatsächlich beim Ausführen dieses Codes erzeugt. – phant0m