Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ungültiger Gleitkommawert (https://www.delphipraxis.net/67880-ungueltiger-gleitkommawert.html)

pp-deluxe 21. Apr 2006 10:54


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:
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);
An was liegts?

ThX

mkinzler 21. Apr 2006 10:59

Re: Ungültiger Gleitkommawert
 
Versuchs mal mit Extended statt Real
Falscher DecimalSeparator?
Warum Fügst du ein Plus in den String ein (wert1 := '+' + wert1; )?

kalmi01 21. Apr 2006 10:59

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 := '.';

pp-deluxe 21. Apr 2006 11:11

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!

alzaimar 21. Apr 2006 11:15

Re: Ungültiger Gleitkommawert
 
Ich konvertiere meine Float-Strings immer so, das das lokale Dezimaltrennzeichen verwendet wird:
Delphi-Quellcode:
If DecimalSeparator = '.' Then
  MyValueStr := StrReplace (MyValueStr, ',', '.') // Komma in Punkt
Else
  MyValueStr := StrReplace (MyValueStr, '.', ','); // Oder Punkt in Komma

MyValueFloat := StrToFloat (MyValueStr);
Wieso sollte man dem Anwender per
Delphi-Quellcode:
DecimalSeparator := '.';
ein anderes Trennzeichen aufschwatzen?

kalmi01 24. Apr 2006 07:08

Re: Ungültiger Gleitkommawert
 
Hallo alzaimer,

Zitat:

Wieso sollte man dem Anwender per
.....
ein anderes Trennzeichen aufschwatzen?
soll man ja nicht.
Aber warum soll man alle seine Daten konvertieren, wenn sie nunmal mit "." vorliegen ?


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