![]() |
Ungültiger Gleitkommawert
G.ude :)
Ich möchte 2 Werte miteinander verrechnen, es scheitert jedoch an einem EConvertError! DIe Fehlermeldung lautet: 26.51551922 ist kein gültiger Gleitkommawert. Hier der Quelltext:
Code:
An was liegts?
procedure TForm1.Button1Click(Sender: TObject);
var wert1, wert2: string; var wert11, wert12, wert3: real; begin wert1 := Copy(Stringgrid1.cells[0,1], 7, 11); wert2 := Copy(Stringgrid1.cells[0,2], 7, 11); wert1 := '+' + wert1; wert2 := '+' + wert2; wert11 := StrToFloat(wert1); wert12 := StrToFloat(wert2); wert3 := wert12 - wert11; label1.caption := FloatToStr(wert3); ThX |
Re: Ungültiger Gleitkommawert
Versuchs mal mit Extended statt Real
Falscher DecimalSeparator? Warum Fügst du ein Plus in den String ein (wert1 := '+' + wert1; )? |
Re: Ungültiger Gleitkommawert
Hi,
könnte es sein, das Deine lokale Einstellung kein . sondern ein , als Trenner erwartet ? Probiers mal mit:
Delphi-Quellcode:
DecimalSeparator := '.';
|
Re: Ungültiger Gleitkommawert
super, mit DecimalSeparator := '.'; und extended klappts :cheers:
Das Plus war für das Vorzeichen, hab ich aber wieder entfernt Vielen Dank! |
Re: Ungültiger Gleitkommawert
Ich konvertiere meine Float-Strings immer so, das das lokale Dezimaltrennzeichen verwendet wird:
Delphi-Quellcode:
Wieso sollte man dem Anwender per
If DecimalSeparator = '.' Then
MyValueStr := StrReplace (MyValueStr, ',', '.') // Komma in Punkt Else MyValueStr := StrReplace (MyValueStr, '.', ','); // Oder Punkt in Komma MyValueFloat := StrToFloat (MyValueStr);
Delphi-Quellcode:
ein anderes Trennzeichen aufschwatzen?
DecimalSeparator := '.';
|
Re: Ungültiger Gleitkommawert
Hallo alzaimer,
Zitat:
Aber warum soll man alle seine Daten konvertieren, wenn sie nunmal mit "." vorliegen ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 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