Autor Beitrag
LittleBen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 258
Erhaltene Danke: 4

Win 7, Mac OS
Delphi 7
BeitragVerfasst: Mo 22.08.11 18:21 
Hallo,
bei dieser Umrechnung stehe ich gerade auf dem Schlauch:
Eine Float-Variable beinhaltet den Wert 3,23. Das soll in Minuten 3:23 ergeben. Jedoch brauche ich das ganze in Sekunden, aber in einen Integer! Also 3,23*60. Die ganze Berechnung würde ja nur mit Round, Trunc etc. funktionieren, doch einen gerundeten Wert kann ich nicht gebrauchen.
Habt ihr eine Lösung, wie ich 3,23 in 3:23 bekomme?

Vielen Danke!
Benny


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 23.08.2011 um 09:35
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Mo 22.08.11 18:35 
Moin,

mal ohne das ausprobieren zu können: 3,23 in 3:23:

Erstmal würde ich die zahl abrunden:
ausblenden Delphi-Quelltext
1:
minutes := floor(3.23//= 3					

diese Zahl zieht man von der ersten Zahl ab und multipliziert sie mit 100:
ausblenden Delphi-Quelltext
1:
seconds := (3.23 - minutes)*100// seconds = 23; minutes = 3;					



die ausgabe sollte man dann hinkriegen.
LittleBen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 258
Erhaltene Danke: 4

Win 7, Mac OS
Delphi 7
BeitragVerfasst: Mo 22.08.11 18:42 
Seconds ist doch kein Integer? :gruebel:
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Mo 22.08.11 20:00 
wieso nicht? Wenn kein Integer, dann zumindest eine ganze zahl und die kann man formell runden...
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 22.08.11 21:33 
ausblenden Delphi-Quelltext
1:
Result := 100*Frac(X) + 60*Floor(X);					

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
buster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 66
Erhaltene Danke: 7

WIN 7
Delphi 2010 Prof
BeitragVerfasst: Di 23.08.11 08:01 
...mal ganz davon abgesehen, dass 3,23 Minuten nicht 3 Minuten und 23 Sekunden sind... es sei denn, die Eingabe ist so gewollt, dann darfst du aber keine Werte > 59 in den Nachkommastellen zulassen ;)