![]() |
EConvertError "Kein gültiger Gleitwert"
Ich habe versucht ein pq-Formel berechnungsprogramm zu schreiben, aber immer wenn ich für p und q Zahlen eingebe und dann auf den berechnungs-Button klicke, kommt eine Fehlermeldung :cry: :cry: :cry: .
"Im Projekt Project1.exe ist eine Exception der Klasse EConvertError aufgetreten. Meldung: 'ist kein gültiger Gleitkommawert' Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen." Kann mir vielleicht einer bei der Problemlösung helfen? Das ist mein Unit1: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TpqFormelRechner = class(TForm) EditP: TEdit; EditQ: TEdit; Labelx2: TLabel; Labelx1: TLabel; LabelPlus2: TLabel; LabelPlus1: TLabel; Labelx4: TLabel; Labelx3: TLabel; LabelPlus4: TLabel; LabelPlus3: TLabel; LabelP: TLabel; LabelQ: TLabel; LabelGleich2: TLabel; LabelGleich1: TLabel; LabelNull1: TLabel; LabelNull2: TLabel; EXEins: TEdit; EXZwei: TEdit; Labelx5: TLabel; Labelx6: TLabel; LabelGleich3: TLabel; LabelGleich4: TLabel; LKommentar: TLabel; EKommentar: TEdit; BBerechnen: TButton; procedure BBerechnenClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var pqFormelRechner: TpqFormelRechner; implementation {$R *.DFM} procedure TpqFormelRechner.BBerechnenClick(Sender: TObject); var p,q,a,b: Real; begin p := strtofloat(EditP.Text); q := strtofloat(EditQ.Text); a := strtofloat(EXEins.Text); b := strtofloat(EXZwei.Text); a := (-(p/2) + sqrt(Sqr(p/2)-q)); b := (-(p/2) - sqrt(Sqr(p/2)-q)); FloatToStrF(a,ffGeneral,7,2); FloatToStrF(b,ffGeneral,7,2); if sqrt(Sqr(p/2)-q)<0 then begin EKommentar.Text := 'Keine Lösung'; EKommentar.Visible := True; LKommentar.Visible := True; end else if sqrt(Sqr(p/2)-q)=0 then begin EKommentar.Text := 'Nur eine Lösung'; EKommentar.Visible := True; LKommentar.Visible := True; end else if sqrt(Sqr(p/2)-q)>=0 then begin EKommentar.Text := 'Zwei Lösungen'; EKommentar.Visible := True; LKommentar.Visible := True; end end; end.[delphi] |
Re: EConvertError "Kein gültiger Gleitwert"
In einem der Eingabefelder scheint etwas falsches oder garnichts eingegeben worden zu sein
Statt StrToFloat besser StrToFloatDef() verwenden |
Re: EConvertError "Kein gültiger Gleitwert"
Hallo und Willkommen in der DP :dp:,
auf den ersten Blick sieht das gar nicht so schlecht aus. Allerdings solltest Du besser mit TryStrToFloat ausprobieren, ob die Umwandlung funktioniert und im Fehlerfall mal selbst eine Meldung ausgeben. |
Re: EConvertError "Kein gültiger Gleitwert"
da es sich anscheinend um ein schulprogramm handelt, reicht es doch, wenn du die zahl richtig eingibst :) (in der schule braucht man ja keine fehlerbehandlung :-) )
wie? musst mal in deine windows einstellungen lurken... PS: delphi tags können hier auch nicht schaden ... :idea: |
Re: EConvertError "Kein gültiger Gleitwert"
Setze gegebenenfalls den DecimalSeparator.
Oder versuch bei der EIngabe anstatt einem , ein . bzw andersrum |
Re: EConvertError "Kein gültiger Gleitwert"
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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