Hi
Ich kann es ehrlich gesagt kaum glauben, das es zu diesem Thema noch keine wirkliche Lösung gibt...
das einzige was ich finden konnte war folgendes:
Delphi-Quellcode:
procedure DezToBruch(DezimalZahl:double;var Zaehler,Nenner:integer;Tiefe:integer);
const ZuKlein=1E-6;
Winzig=1E-12;
var GanzAnteil,a,b:integer;
begin
GanzAnteil:=trunc(DezimalZahl+Winzig);
if (Tiefe>1) and (abs(DezimalZahl-GanzAnteil)>ZuKlein) then begin
DezToBruch(1/(DezimalZahl-GanzAnteil),a,b,Tiefe-1);
Zaehler:=a*GanzAnteil+b;
Nenner:=a;
end else begin
Zaehler:=GanzAnteil;
Nenner:=1;
end;
end;
Von
hier
Aber wenn man beispielsweise -0.1 reintut, kommt -1/9 raus
gibt es irgendwo eine komplett funktionierende Lösung?