Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Float Problem??? (https://www.delphipraxis.net/33834-float-problem.html)

BlueBong 13. Nov 2004 13:47


Float Problem???
 
Hallo miteinander

Ich habe folgendes Problem ich habe habe 2 Zahlen (integer) welche einen Lagerbestand darstellen nun habe ich noch eine Produktionsmenge/h (integer)

Mein Ziel ist es aus die Lagerbestände voneinander abzuziehen und dann durch die Produktionsmenge zu teilen um auf die Produktionszeit zu kommen.

Dies habe ich wie folgt gelöst.

Delphi-Quellcode:
stunden := TRUNC(((bedarf-vorhanden) div abbau));
ergebnis := stunden mod 24;
tage := (stunden - ergebnis) div 24;
stunden :=ergebnis;
label.Text:=floattostr((((bedarf-vorhanden) div abbau) - (24*tage)-stunden));
minuten :=ROUND((((bedarf-vorhanden) div abbau) - (24*tage)-stunden)*60);
Nun es klappt auch gut bei den Tagen und Stunden nur bei den Minuten gibt das Programm mir immer 0 aus.

Woran kann dies liegen?

Sehr komisch finde ich auch, dass ,mir das programm schon an der Stelle an der ich es zum Test an label ausgebe 0 ausgibt. Dabei müsste es an dieser Stelle ja eine Gleitkomma zahl sein (wenn es Minuten gibt).

Vielleicht hatte jemand von euch auch schon das Problem. Oder ihr wisst was ich falsch gemacht habe. Danke schon im Voraus.

MfG Michael

glkgereon 13. Nov 2004 16:02

Re: Float Problem???
 
also ich würde es so machen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var benoetigt, bedarf, vorhanden, produktion, stunden, minuten, sekunden:integer;
begin
  Produktion:=strtoint(Edit1.Text);
  vorhanden:=strtoint(Edit2.Text);
  bedarf:=strtoint(Edit3.Text);
  benoetigt:=bedarf-vorhanden;
  stunden:=benoetigt div produktion;
  benoetigt:=benoetigt - produktion * stunden;
  minuten:=(benoetigt * 60) div produktion;
  benoetigt:=benoetigt - produktion * minuten div 60;
  sekunden:=(benoetigt * 3600) div produktion;
  Label1.Caption:=inttostr(stunden)+':'+inttostr(minuten)+':'+inttostr(sekunden)
end;
ob dies besser/einfacher ist ist die frage....

BlueBong 13. Nov 2004 16:21

Re: Float Problem???
 
Spitze so klappts.

Vielen Dank.

MfG Michael


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