Forum: PC-Programmierung Nur Stellen vor dem Komma berücksichtigen


von Michael (Gast)


Lesenswert?

Hallo,

ich muss ein Programm programmieren, das bei Eingabe von Sekunden, 
daraus die Stunden, Minuten und Sekunden berechnet. Folgende 
Verarbeitung bisher:

Stunden = Sekunden/3600;

wie geht es dass man das ausrechnet und vom ergebnis nur die stelle VOR 
dem komma berücksichtigt

bsp: sekunden=1800

stunden = 1800/3600 =0,5 hier soll er nur die 0 berücksichtigen und 
nicht mit dem ,5 wert weiterrechnen

Danke

von Mike (Gast)


Lesenswert?

Integer ist ne Ganzzahl und schleppt keine Nachkommastellen mit

von Daniel (Gast)


Lesenswert?

Ich schmunzele :)

1
floor(2.4) = floor(2.5) = 2 
2
round(2.4) = 2
3
round(2.5) = 3
4
ceil(2.4) = ceil(2.5) = 3

Das ist das Werkzeug

von Rolf Magnus (Gast)


Lesenswert?

> Stunden = Sekunden/3600;
>
> wie geht es dass man das ausrechnet und vom ergebnis nur die
> stelle VOR dem komma berücksichtigt

Kommt auf die Programmiersprache an.

von Michael Z. (tgaa)


Lesenswert?

Daniel schrieb:
> Ich schmunzele :)
>
>
> [pre]
> floor(2.4) = floor(2.5) = 2
> round(2.4) = 2
> round(2.5) = 3

Ja aber ich will dass bei 2,5 eben nicht auf 3 aufgerundet sondern auch 
auf 2 abgerundet wird. Bewirkt die ceil funktion das?

von Helmut L. (helmi1)


Lesenswert?

Stunden = ulTime / 3600L;

ulTime -= (Stunden * 3600L);

Minuten = ulTime / 60L;

ulTime -= (Minuten * 60L);

Sekunden = ulTime;


Alles Integer Variablen. In ulTime deine Sekundeneingabe


Gruss Helmi

von Karl H. (kbuchegg)


Lesenswert?

Michael Z. schrieb:

> Ja aber ich will dass bei 2,5 eben nicht auf 3 aufgerundet sondern auch
> auf 2 abgerundet wird. Bewirkt die ceil funktion das?

Die brauchst du doch gar nicht.
Wenn Stunden eine int-Variable ist, dann kann diese per Definition keine 
Nachkommastellen haben. Das ist nun mal das Wesen eines int nur ganze 
Zahlen aufnehmen zu können.

Und in jedem noch so schlechtem C-Buch steht, dass bei der Zuweisung von 
Gleitkommewarten an einen int die Nachkommastellen einfach abgeschnitten 
werden. Da wird überhaupt nicht gerundet.

von Rolf Magnus (Gast)


Lesenswert?

> Und in jedem noch so schlechtem C-Buch steht, dass bei der
> Zuweisung von Gleitkommewarten an einen int die
> Nachkommastellen einfach abgeschnitten werden.

Wobei hier nicht mal klar ist, ob es sich beim Eingangswert überhaupt um 
einen Gleitkomma-Wert handelt.

von D. I. (Gast)


Lesenswert?

floor = immer abrunden
ceil = immer aufrunden

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.