Registriert seit: 7. Sep 2008
Ort: Schiffdorf
7 Beiträge
|
Teilen
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.
|