Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
16. Nov 2005
@3_of_8:
Versuch es mal mit deaktivierten FPU-Exceptions :zwinker:
var
Saved8087CW: Word;
begin
Saved8087CW := Default8087CW;
Set8087CW($133f);
with memo1.lines do
begin
add(floattostr(radtodeg(arccos(-1.0001))));
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
15. Nov 2005
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:
If (z < -1) or (z > 1) Then
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
15. Nov 2005
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