AGB  ·  Datenschutz  ·  Impressum  







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

Fehler bei Grundrechenarten

Ein Thema von BrinkschulteManfred · begonnen am 28. Sep 2004 · letzter Beitrag vom 29. Sep 2004
Antwort Antwort
Benutzerbild von BrinkschulteManfred
BrinkschulteManfred

Registriert seit: 23. Sep 2003
Ort: Menden
97 Beiträge
 
Delphi 7 Enterprise
 
#1

Fehler bei Grundrechenarten

  Alt 28. Sep 2004, 21:48
Hallo zusammen,


liegt es an einer längenmäßigen Begrenzung von Variablennamen, dass folgendes passiert?

Delphi-Quellcode:
  Menge := StrToInt(EditMenge.Text); //=1
  Hoehe := StrToFloat(EditHoehe.Text); //=0.5
  Breite := StrToFloat(EditBreite.Text); //=2
  // Geometrie berechnen
  FlaecheSichtbarStueck := Hoehe * Breite;
  X:= FlaecheSichtbarStueck;
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?

Gruß
Manfred

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Fehler bei Grundrechenarten

  Alt 28. Sep 2004, 21:53
Hi,

das kann ich nicht bestätigen.

Mein Test-Code (Drei Edits und ein Button auf die Form)
Delphi-Quellcode:
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
Anzumerken ist, dass es bei mir mit einem Punkt als Dezimalseperator nicht geklappt hat ("0.5 ist kein gültiger Fließkommawert")

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#3

Re: Fehler bei Grundrechenarten

  Alt 28. Sep 2004, 22:15
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
ShowMessageFmt('%f %f', [FlaecheSichtbarStueck, X]); anhängst sollte es auch bei dir stimmen.

grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Fehler bei Grundrechenarten

  Alt 28. Sep 2004, 22:38
Zitat:
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?
Das Problem hate ich auch schon öfter!
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)
  Mit Zitat antworten Zitat
Benutzerbild von BrinkschulteManfred
BrinkschulteManfred

Registriert seit: 23. Sep 2003
Ort: Menden
97 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Fehler bei Grundrechenarten

  Alt 29. Sep 2004, 09:52
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
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:01 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