Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi kann nicht teilen (https://www.delphipraxis.net/15622-kann-nicht-teilen.html)

PiT123 1. Feb 2004 17:35


kann nicht teilen
 
Hallo,

ich will einfach einen real Wert dividieren und im Edit-Fenster anzeigen
aber ich bekomme immer einen fehler !

es muss doch möglich sein +,- und * funtzen doch auch...

Delphi-Quellcode:
var
a,b,c,f,d,g,h :real;
begin
a:= StrToFloat(Edit1.text);
b:= StrToFloat(Edit2.text);
d:= StrToFloat(Edit3.text);
c:=a*b;
f:=b*d;
g:=f-c;
h:=100*g/f;     // warum kann er hier nicht G durch F rechnen
Edit4.Text:=FloatToStr(c)+' €';
Edit5.Text:=FloatToStr(f)+' €';
Edit6.Text:=FloatToStr(g)+' €';
Edit7.Text:=FloatToStr(h)+' %';
end;

Stanlay Hanks 1. Feb 2004 17:42

Re: kann nicht teilen
 
Hallo! Ich kann dein Problem leider nicht nachvollziehen. Ich hab mir mal eben 7 Edits auf mein Form gezogen und dein Code funktioniert einwandfrei, d.h. es kommt bei mir kein Fehler.
Welchen Fehler bekommst du denn? Hast du evt. in irgendein Feld 0 eingegeben? Hat evtl "f" den Wert 0? Dann bekommst du nämlich eine Division durch Null und das gibt natürlich einen Fehler.

Man liest sich, Stanlay :hi:

fkerber 1. Feb 2004 17:43

Re: kann nicht teilen
 
Hi!

Was kommt denn für ein Fehler?

Probier mal

Delphi-Quellcode:
g mod f
Ich glaube, das ging.
[Edit]Leider nicht bei Reals, aber Stanlay hat recht, dein Code funzt bei mir auch [/Edit]

Ciao fkerber

FriFra 1. Feb 2004 17:43

Re: kann nicht teilen
 
Falls in Deinem Beispiel f = 0 ist, gibt es auf jeden Fall einen Fehler...

Stanlay Hanks 1. Feb 2004 17:48

Re: kann nicht teilen
 
Was natürlich auch noch eine Möglichkeit wäre, ist, dass eins der Felder ganz leer ist, und du einen Konvertierungsfehler kriegst ('' / StrToFloat)

Man liest sich, Stanlay :hi:

PiT123 1. Feb 2004 17:55

Re: kann nicht teilen
 
Fehler:

im Projekt1.exe ist eine Exception der Klasse EInvalidOP aufgetreten.Meldung:'Ungültige Gleitkommaoperation .....

habe auch mal F:=1 gesetzt ohne erfolg ..

Delphi-Quellcode:

var
a,b,c,f,d,g,h :Extended; //oder real
begin
f:=1;
a:= StrToFloat(Edit1.text);
b:= StrToFloat(Edit2.text);
d:= StrToFloat(Edit3.text);
c:=a*b;
f:=b*d;
g:=f-c;
h:=g*100 / f;
Edit4.Text:=FloatToStr(c)+' €';
Edit5.Text:=FloatToStr(f)+' €';
Edit6.Text:=FloatToStr(g)+' €';
Edit7.Text:=FloatToStr(h)+' %';
end;

CalganX 1. Feb 2004 17:59

Re: kann nicht teilen
 
Hi,
mach mal daraus ein Extended. Dann versuch mal das g*100 einzuklammern.

Chris

Stanlay Hanks 1. Feb 2004 18:01

Re: kann nicht teilen
 
Hi. Wenn du f schon 1 setzt, dann direkt vor der Verwendung von f. So wie du das jetzt geändert hast, ist ja f immer noch von "b" und "d" abhängig. Wenn entweder b oder d = 0 sind, dann ergibt f auch 0 => Fehler :wink:

Man liest sich, Stanlay :hi:

Dagon 1. Feb 2004 18:19

Re: kann nicht teilen
 
Ergänze den Code einfach z. B. mit folgender Abfrage:

Delphi-Quellcode:
if f = 0 then
    f := 1


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