Registriert seit: 17. Jun 2009
616 Beiträge
|
AW: Float in zwei Integer zerlegen
20. Jun 2015, 16:48
Lösungen wurden schon gezeigt - hier eine Zusammenfassung:
Wenn dann doch schon so:
Delphi-Quellcode:
procedure MM(s:string; AMemo: TMemo); begin AMemo.Lines.Add(s); end;
function LDOUBLE(d:Double):INTEGER;
begin
Result := TRUNC(d);
end;
function RDOUBLE(d:Double):INTEGER;
begin
Result := TRUNC(FRAC(d) * 24 * 60 * 60 * 1000);
end;
function INTINTDOUBLE(a, b : INTEGER): DOUBLE;
begin
Result := a + (b / 24 / 60 / 60 / 1000);
end;
procedure TForm1.Button6Click(Sender: TObject);
var a, b : INTEGER;
begin
MM(DATETIMETOSTR(now),Self.Memo1);
a := LDOUBLE(now);
b := RDOUBLE(now);
MM('LDOUBLE: '+INTTOSTR(a),Self.Memo1);
MM('RDOUBLE: '+INTTOSTR(b),Self.Memo1);
MM('Date: '+DATETOSTR(INTINTDOUBLE(a,b)),Self.Memo1);
MM('Time: '+TIMETOSTR(INTINTDOUBLE(a,b)),Self.Memo1);
MM('ReCombined: '+DATETIMETOSTR(INTINTDOUBLE(a,b)),Self.Memo1);
end;
Wir wollen ja keine Instanzen der Form verärgern.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
|
|
Zitat
|