Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Sinus, Kosinus, Tangens: falsche Ergebnisse!


K.S.M. - So 10.08.08 13:34
Titel: Sinus, Kosinus, Tangens: falsche Ergebnisse!
Hallo! :D

Ich habe folgenden Code:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  Input : Extended;
begin
  Input := StrToFloat( Edit1.Text );       // Edit1.Text = '90'
  Label1.Caption := Format( 'Sinus   : %.4f', [sin(Input)] );  // Label1.Caption = 'Sinus: 0,8940'
  Label2.Caption := Format( 'Kosinus : %.4f', [cos(Input)] );  // Label2.Caption = 'Kosinus: -0,4481'
  Label3.Caption := Format( 'Tangens : %.4f', [tan(Input)] );  // Label3.Caption = 'Tangens: -1,9952'
end;


Die Ergebnisse sind falsch! Sie stimmen nur, wenn man Sinus, Kosinus und Tangens von 0 berechnet.
Weiß jemand, was da falsch läuft?


Moderiert von user profile iconChristian S.: Topic aus VCL (Visual Component Library) verschoben am So 10.08.2008 um 14:38


nagel - So 10.08.08 13:38

Die Winkelfunktionen erwarten das Argument im Bogenmaß. Du kannst deine Angabe im Gradmaß mit DegToRad umrechnen (oder auch einfach winkel/180*pi).


K.S.M. - So 10.08.08 13:42

Ah! Vielen Dank! :D


giantdwarf - Di 12.08.08 09:35

Die trigonometrischen Funktionen rechnen nicht mit Grad sondern Radiant, d.h. wenn Du den Sinus von 90° ausrechnen willst, musst Du erst 90° in Radiant, d.h. Pi/2, umrechnen.


giantdwarf - Di 12.08.08 09:40

Ups, hatte garnicht gesehen, dass die Antwort schon gegeben war. Naja, doppelt hält besser. :wink: