Entwickler-Ecke

Sonstiges (Delphi) - Zinseszinsrechner - Fehler: EConvertError


dejavu - Do 06.05.10 19:53
Titel: Zinseszinsrechner - Fehler: EConvertError
Hallo, ich bastel mir gerade einen Rechner, mit dem man bei Krediten Laufzeit, Startkapital,Endkapital und Prozentsatz errechnen kann. Das Programm errechnet immer die Fehlende der 4 Variablen. Also wenn nur Laufzeit, Startkapital und Zinssatz gegeben sind errechnet es automatisch das Endkapital und gibt es in einem Panel als Text an.

Für den ersten Fall, nähmlich das das Anfangskapital nicht gegeben ist, habe ich meinen Quelltext schon fertig,
doch wenn ich das Programm starte und das Feld für k0 leer lasse und die restlichen Felder entsprechen ausfülle kommt nachdem ich den Start-Button gedrückt habe folgender Fehler:

Project Zinseszins.exe raised Exception class EConvertError with message '''is not a valid floating point value'. Process stopped. Use Step or Run to continue.


Hier mein Quelltext:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
unit UHaupt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Math;

type
  TForm1 = class(TForm)
    EK0: TEdit;
    EKn: TEdit;
    En: TEdit;
    EP: TEdit;
    BStart: TButton;
    PErgebnis: TPanel;
    procedure BStartClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BStartClick(Sender: TObject);
var k0,kn,q,p,n :real;
begin
k0:= StrToFloat (EK0.Text);
kn:= StrToFloat (EKn.Text);
n:= StrToFloat (En.Text);
p:= StrToFloat (EP.Text);
q:= 1+ (p*0.01);

if (EK0.Text=''then

begin
k0:= kn*(power (q,n));
PErgebnis.Caption:= FloatToStr (k0);
end;



end;

end.

Was genau muss ich wo eingeben, damit der Fehler nicht mehr erscheint?

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Titel geändert.


Xion - Do 06.05.10 20:00

user profile icondejavu hat folgendes geschrieben Zum zitierten Posting springen:
'''is not a valid floating point value'

Das ist doch schon die Antwort. Beim unwandeln von String ('' = Leerstring) nach Floating Point (Float) => Fehler, weil der LeerString keine Float-Interpretation ermöglicht. Der Fehler tritt logischerweise dann bei StrToFloat auf, wenn die Eingabe (ein Edit) leer ist. Hirn einschalten :mahn:

Edit: Delphi-Code mit den Delphi Tags [Delphi][/Delphi ] einschließen. Gibts auch oben irgendwo zum anklicken. (Bereiche)


Dude566 - Do 06.05.10 20:04

Hätte der eine Thread nicht gereicht? :roll:


Xion - Do 06.05.10 20:06

Es wäre zumindest nicht verkehrt den Titel in "FloatToStr Umwandlung Fehler" oder so umzubenennen


dejavu - Do 06.05.10 20:15

user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Hätte der eine Thread nicht gereicht? :roll:

Bin n Neuling und verstehe nur Bahnhof, was genau muss ich jetzt wo in meinen Quelltext eintragen, damit diese Fehlermeldung nicht mehr erscheint?


Narses - Do 06.05.10 20:27

Moin!

user profile icondejavu hat folgendes geschrieben Zum zitierten Posting springen:
Bin n Neuling und verstehe nur Bahnhof,
...was kein Grund ist, das Gehirn ausgeschaltet zu lassen. ;)

user profile icondejavu hat folgendes geschrieben Zum zitierten Posting springen:
was genau muss ich jetzt wo in meinen Quelltext eintragen, damit diese Fehlermeldung nicht mehr erscheint?
Du solltest zunächst mal in der MyBrain.ini den Wert Used=TRUE setzen, abspeichern und dein Brain-OS neustarten :zwinker: danach könntest du mal nach der Funktion StrToFloatDef() in der Hilfe oder hier im Forum suchen. :idea:

cu
Narses