AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Invers Cosinus Probleme

Ein Thema von Weazy · begonnen am 14. Nov 2005 · letzter Beitrag vom 16. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Weazy
Weazy

Registriert seit: 7. Apr 2005
Ort: Bern (Schweiz)
414 Beiträge
 
Delphi 2007 Enterprise
 
#1

Invers Cosinus Probleme

  Alt 14. Nov 2005, 20:22
Hi,

ich habe da noch so ne blöde frage:


wenn ich in folgender Funktion als z eine real Zahl einsetze, ist das Resultat "NAN". Wenn ich hingegen -1 einsetze ist das Ergebniss korrekterweise 180.

radtodeg(arccos((z)));

Wisst ihr woran das liegt?
Philippe Wechsler
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Invers Cosinus Probleme

  Alt 15. Nov 2005, 01:53
Was für Werte hast du denn eingegeben? Definiert ist der Arcuscosinus nur über -1..1. Alles darüber und darunter sollte jedoch eher eine Exception statt NaN liefern
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#3

Re: Invers Cosinus Probleme

  Alt 15. Nov 2005, 04:00
Es kommt auf die Fehlerbehandlung an, wenn diese abgestellt ist, wird korrekter Weise NaN (Not a Number) zurückgegeben, wenn sich ein Fehler ereignet hat.

Und wwie dizzy schon sagte, was gibts du für Werte dort ein?
Diese dürfen ja schließlich nur in einem bestimmten Bereich liegen.

-1 <= Z <= 1
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Weazy
Weazy

Registriert seit: 7. Apr 2005
Ort: Bern (Schweiz)
414 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Invers Cosinus Probleme

  Alt 15. Nov 2005, 11:30
Ich hab es gefunden! Ich runde den eingegbenen Wert einfach mit Roud()!

Vielen Dank trotzdem!
Philippe Wechsler
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Invers Cosinus Probleme

  Alt 15. Nov 2005, 19:04
Äääähm, damit sorgst du dafür dass arccos() ganze 3 mögliche Ergebnisse liefert - und das ist gewiss nicht akkurat . Eine wirkliche Lösung des Problems kann das imho nicht sein
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von Weazy
Weazy

Registriert seit: 7. Apr 2005
Ort: Bern (Schweiz)
414 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Invers Cosinus Probleme

  Alt 15. Nov 2005, 20:37
Wie denn das?
Philippe Wechsler
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Invers Cosinus Probleme

  Alt 15. Nov 2005, 20:39


Ganz einfach: Dann hast du entweder:
-1,0, oder 1. Und damit auch nur drei verschiedene Ergebnisse. Das bringts auch voll.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Weazy
Weazy

Registriert seit: 7. Apr 2005
Ort: Bern (Schweiz)
414 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Invers Cosinus Probleme

  Alt 15. Nov 2005, 23:08
Wie kann man dann z.b auf 5 Stellen genau runden?
Philippe Wechsler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#9

Re: Invers Cosinus Probleme

  Alt 15. Nov 2005, 23:18
Ganz genau Runden geht eh nicht ... liegt halt an der internen Struktur der Typen (Single, Double...).

Aber du kannst es so machen:
X := Runden(X * 10^5) / 10^5;
X := Round(X * 100000) / 100000;
Und hast du mal nachgesehn, was du für Werte in z übergibst?
Notfalls mal vorher testen:
Delphi-Quellcode:
If (z < -1) or (z > 1) Then
  MessageBox('Fehler: ' + FloatToStr(z), ...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Invers Cosinus Probleme

  Alt 15. Nov 2005, 23:37
Ich hab das ganze mal getestet:

Delphi-Quellcode:
with memo1.lines do
begin
add(floattostr(radtodeg(arccos(-1))));
add(floattostr(radtodeg(arccos(-0.75))));
add(floattostr(radtodeg(arccos(0))));
add(floattostr(radtodeg(arccos(0.75))));
add(floattostr(radtodeg(arccos(1))));
add(floattostr(radtodeg(arccos(1.0001))));
end;
Alle Befehle haben ein korrektes Ergebnis gebracht, der letzte Befehl (quod erat exspectandum) eine Exception (Ungültige Gleitkommaoperation).
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz