![]() |
Cosinus gibt falschen Wert aus
Hallo allerseits,
ich habe ein ganz komisches Problem. Die Zeile Edit1.Text:= FloattoStr(Cos(0.5*Pi)) gibt bei ihrer Ausführung im Edit1 ungefähr -2,7 aus. Meiner Meinung nach (und nach der des Taschenrechners) müsste aber 0 rauskommen. Die Unit Math ist auch in den Uses vorhanden. Hat jemand eine Ahnung woran dieser Rechenfehler liegen könnte? |
AW: Cosinus gibt falschen Wert aus
Na ich würde nochmal gaaanz genau hinschauen. Vermutlich steht da sowas wie '-2,72000000000000000000000E-45' oder so.
|
AW: Cosinus gibt falschen Wert aus
Ach was für ein blöder Fehler. Manchmal sucht man eine halbe Ewigkeit nach einem Fehler und dann ist das sowas primitives.
Vielen Dank :) |
AW: Cosinus gibt falschen Wert aus
Zitat:
Nicht nur der Taschenrechner, auch der eigene Kopf. Spaß beiseite: Wenn du Kommazahlen zuverlässig in einem String ausgeben willst, würde ich mir die Funktion
Delphi-Quellcode:
einmal ansehen.
FormatFloat(..)
Beispiel:
Delphi-Quellcode:
procedure TForm25.FormCreate(Sender: TObject);
const formatStr: String = '#0.00'; var zahl: Single; begin zahl := Cos(0.5 * Pi()); memo1.Lines.Append('Vorher:'); memo1.Lines.Append( zahl.ToString() ); memo1.Lines.Append(sLineBreak); memo1.Lines.Append('Nachher:'); memo1.Lines.Append( FormatFloat(formatStr, zahl) ); end; |
AW: Cosinus gibt falschen Wert aus
Winkel und Bogenmaß?
|
AW: Cosinus gibt falschen Wert aus
Wenn ich mich nicht irre scheint die Embarcadero-Philosophie zu sein, das Ergebnis von trigonometrischen Funktionen immer im Gradmaß zurückzugeben.
|
AW: Cosinus gibt falschen Wert aus
Zitat:
falsche Programmiersprache :-)
Delphi-Quellcode:
memo1.Lines.Append(IntToStr(zahl));
|
AW: Cosinus gibt falschen Wert aus
Zitat:
Seitdem Record-Helper nun auch endlich für generische Typen verfügbar sind, haben String, Integer und Co. auch eine ToString-Methode, so wie es TObjekt von Grund auf ja auch schon seit 'ner Weile hat. Zitat:
Und nein, das ist nicht Delphi/Borland, sondern kommt so direkt von der CPU (früher FPU). |
AW: Cosinus gibt falschen Wert aus
Zitat:
|
AW: Cosinus gibt falschen Wert aus
Aber AnsiString, UnicodeString und LongInt sind doch generische Typen, oder hieß das doch ein bissl anders? :gruebel:
Also die grundsätzliche Basistypen des Compilers, oder so ... nicht zu verwechseln mit den Generics. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz