![]() |
Fehler bei Grundrechenarten
Hallo zusammen,
liegt es an einer längenmäßigen Begrenzung von Variablennamen, dass folgendes passiert?
Delphi-Quellcode:
Alle Variablen sind vom Typ DOUBLE. Wenn FlaecheSichtbarStueck berechnet wird, kommt das richtige Ergebnis (1) heraus. Wird aber nun X zugewiesen, enthält anschließend X den Wert 1,7.....e-269. Woran liegt es? Mir fällt nur der lange Name der Variablen auf. Kann es daran liegen?
Menge := StrToInt(EditMenge.Text); //=1
Hoehe := StrToFloat(EditHoehe.Text); //=0.5 Breite := StrToFloat(EditBreite.Text); //=2 // Geometrie berechnen FlaecheSichtbarStueck := Hoehe * Breite; X:= FlaecheSichtbarStueck; Gruß Manfred [edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit] |
Re: Fehler bei Grundrechenarten
Hi,
das kann ich nicht bestätigen. Mein Test-Code (Drei Edits und ein Button auf die Form)
Delphi-Quellcode:
Anzumerken ist, dass es bei mir mit einem Punkt als Dezimalseperator nicht geklappt hat ("0.5 ist kein gültiger Fließkommawert")
var
Menge, Hoehe, Breite, FlaecheSichtbarStueck, X: Double; begin Menge := StrToInt(Edit1.Text); //=1 Hoehe := StrToFloat(Edit2.Text); //=0,5 Breite := StrToFloat(Edit3.Text); //=2 // Geometrie berechnen FlaecheSichtbarStueck := Hoehe * Breite; X:= FlaecheSichtbarStueck; ShowMessageFmt('%f %f', [FlaecheSichtbarStueck, X]); // gibt "1,00 1,00" aus mfG mirage228 |
Re: Fehler bei Grundrechenarten
Hallo,
Ist es möglich, dass du den Wert von X nur im Debuger per Hint auswertest? Vermutlich liefert dir der Compiler die Meldung "Auf 'X' zugewiesener Wert wird niemals benutzt". Wenn du eine Variable zuweist, die du nachher nie mehr benutzt, wird das wegoptimiert und die Zuweisung findet eigentlich gar nie statt. Wenn du das
Delphi-Quellcode:
anhängst sollte es auch bei dir stimmen.
ShowMessageFmt('%f %f', [FlaecheSichtbarStueck, X]);
grüße, daniel |
Re: Fehler bei Grundrechenarten
Zitat:
Ich mach eine Berechnung, und das Ergebnis ist vollkommen falsch! Ich weiß nicht woran es lag, aber nach dem ich den ganzen Abschnitt nochmal neu geschrieben hatte, war der Fehler behoben! (Ich hab Extended verwendet) |
Re: Fehler bei Grundrechenarten
Herzlichen Dank,
ich habe tatsächlich nur den Hint im Debugger betrachtet und auch nicht berücksichtigt, dass der Code vom Compiler optimiert wird. Dann sieht das Ganze natürlich schon sehr viel besser aus! Herzlichen Dank, jetzt kann ich mich dann anderen Problemen widmen. Gruß Manfred |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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-2025 by Thomas Breitkreuz