Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Float Anzeige im Debugger (https://www.delphipraxis.net/131662-float-anzeige-im-debugger.html)

moelski 28. Mär 2009 14:47


Float Anzeige im Debugger
 
Moin !

Ich habe hier ein merkwürdiges Problem und keine Erklärung ...
Gegeben sei dieser Code:
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var inp : String;
    t1, t2 : Double;
begin
  inp := InputBox('Eingabe', '', '39900,4153345602');
  t1 := StrToFloat(inp);
  T2 := T1 * 2;
  ShowMessage(FloatToStr(t2));
end;
Nix besonderes. So wenn ich durchsteppe dann ist in INP z.B. der String '39900,4153345602' abgelegt.
In T1 zeigt mir der Debugger aber dann 39900,415335. (also abgerundet)
Für T2 habe ich bei den lokalen Variablen den Wert 79800,830669.
Das zeigt mir der Compiler auch wenn ich mit der Maus über die Variable fahre.

ShowMessage zeigt mir aber dann hinterher wieder 79800,8306691204.

Ist das nur eine Einschränkung vom Debugger / der IDE?

Hintergrund : Ich muss mit Datumswerten rechnen. Nun stellt sich mir aber die Frage ob der Compiler da die Werte nach StrToFloat abrundet (und somit mein Ergebnis falsch wird), oder ob das nur die Anzeige im Debugger betrifft.

jaenicke 28. Mär 2009 15:23

Re: Float Anzeige im Debugger
 
Das ist nur im Debugger so.

Aber mal abgesehen davon geht es bei den genannten Werten um Sekundenbruchteile, die sind doch bei Datumswerten ohnehin irrelevant. Warum nimmst du eigentlich nicht TDateTime als Typ? Das stimmt zwar überein, aber in Kombination mit der Unit DateUtils wäre das vermutlich sinnvoller bzw. verständlicher. ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:22 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