in meinem kleinen Projekt nutze ich mehrere Tedit um Längenangaben zu machen. Diese werden im Format "double" hinterlegt, in Array`s abgelegt und via Records gespeichert und, bei Bedarf, wieder ins Projekt geladen. Das hat alles schon einige Zeit gut funktioniert. Mein Programmchen hatte ich mit LAZ 64 erstellt. Aus verschiedenen Gründen habe ich nun die 32 Bit Version Lazarus installiert und es zeigt sich folgendes Verhalten:
Wenn ich einen Wert mit einem Komma eingebe (z.B. 124,65) dann erhalte ich beim Auslesen 124,6500015 .
Um Codefehler auszuschließen habe ich, zum Testen, das gebastelt:
Code: Alles auswählen
procedure TSteuerung_A.Edit1EditingDone(Sender: TObject);
begin
Test:= StrToFloat(Edit1.Text);
end;
procedure TSteuerung_A.Button1Click(Sender: TObject);
begin
Edit2.Text:= FloatToStr(Test);
end;
Gruß
Hannes
(Lazarus IDE v 1.4.4)
P.S. Weil mir das jetzt keine Ruhe gelassen hat habe ich ein neues Projekt erstellt. Darin läuft es so wie es soll!
Nicht erwähnt hatte ich, dass ich mich mit "Andorra" beschäftige. Daher auch der Wechsel zur 32 Bit Version von Lazarus.
Nach dem Auskommentieren der Andorra-Routinen klappt es auch wieder mit korrekten Float-Werten!
Wer kommt denn auf so Etwas?