Thema: Delphi Teilen

Einzelnen Beitrag anzeigen

TimoB

Registriert seit: 7. Sep 2008
Ort: Schiffdorf
7 Beiträge
 
#1

Teilen

  Alt 1. Okt 2008, 20:58
Hallo,
habe da ein Problem wo ich überhaupt nicht weiter komme...

ich gebe eine Länge in ein Eingabefeld ein mit :

Laenge := strtofloat (editlaenge.Text);

denn wird die Anzahl der Zellen eines Regals folgendermaßen berechnet:

Anzahlzellen4 := trunc((Laenge-Staenderbreite) / (Zellenbreite4+Staenderbreite));

Ständerbreite und Zellenbreite4 sind folgendermaßen berechnet:

Staenderbreite := 0.1;

Zellenbreite4 := ( 2 * Staenderabstand ) + ( 3 * Palettenabstand )+ ( 4 * Palettenbreite );

die variablen sind wie folgt definiert:

Zellenbreite4,Staenderbreite, Palettenabstand : single ;
Anzahlzellen : integer ;

mein problem ist, das das ergebnis der anzahlzellen4 bei einer Längenangabe von 3,8 = 0 ist, obwohl eigentlich 1 rauskommen müsste.
denn:
Länge-Staenderbreite ergibt 3,7 und Zellenbreite4 + Staenderbreite ergibt auch 3,7.

wenn ich mir das ergebnis ohne trunc anzeigen lasse, kommt ein ergebnis von 0,999999945 raus und denn macht trunc da natürlich eine o von.
kann mir einer sagen, warum 0,999999945 statt 1 rauskommt. liegt das evtl an den typen der variablen?

danke im vorraus.
  Mit Zitat antworten Zitat