Ich möchte eine Gleitzahl in zwei Integer zerlegen.
Vorkomma und Nachkomma sollen jeweils zwei Integer bilden. Später will ich das ganze zusammensetzen.
Lösungen wurden schon gezeigt - hier eine Zusammenfassung:
Delphi-Quellcode:
procedure MM(s:string); begin Form1.Memo1.Lines.Add(s); end;
Function LDOUBLE(d:Double):INTEGER;
begin
Result:= TRUNC(d);
//evtl. Zahl verschlüsseln
end;
Function RDOUBLE(d:Double):INTEGER;
begin
Result:= TRUNC(FRAC(d) * 24 * 60 * 60 * 1000);
//evtl. Zahl verschlüsseln
end;
Function INTINTDOUBLE(a, b : INTEGER): DOUBLE;
begin
// evtl. Zahlen a und b vorher entschlüsseln
Result:= a + (b / 24 / 60 / 60 / 1000);
end;
procedure TForm1.Button6Click(Sender: TObject);
var a, b : INTEGER;
begin
MM(DATETIMETOSTR(now));
a:= LDOUBLE(now);
b:= RDOUBLE(now);
MM('LDOUBLE: '+INTTOSTR(a));
MM('RDOUBLE: '+INTTOSTR(b));
MM('Date: '+DATETOSTR(INTINTDOUBLE(a,b)));
MM('Time: '+TIMETOSTR(INTINTDOUBLE(a,b)));
MM('ReCombined: '+DATETIMETOSTR(INTINTDOUBLE(a,b)));
end;