Einzelnen Beitrag anzeigen

BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#47

AW: Float in zwei Integer zerlegen

  Alt 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.
  Mit Zitat antworten Zitat