Einzelnen Beitrag anzeigen

Benutzerbild von Mystic
Mystic

Registriert seit: 18. Okt 2003
Ort: Flerzheim
420 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Rechner machen mit Brüche

  Alt 18. Dez 2005, 02:02
Übersetzt von VB nach Delphi von hier: http://www.geocities.com/oosterwal/c.../dec2frac.html

Die Funktion versucht eine rationale Zahl (= Bruch) zu finden, die der Dezimalzahl möglichst nahe liegt (im Bereich von Accuracy).

Delphi-Quellcode:
type
  TFraction = record
    Numerator: Integer;
    Denominator: Integer;
  end;

function Dec2Frac(const Decimal, Accuracy: Double): TFraction;
var
  tempd: Double;
  f: TFraction;
  neg: Shortint;
begin
  f.Numerator := 0;
  f.Denominator := 1;
  if Decimal < 0 then
    neg := -1
  else
    neg := 1;
  tempd := 0;
  while Abs(tempd - Decimal) > Accuracy do begin
    if Abs(tempd) > Abs(Decimal) then
      inc(f.Denominator)
    else
      f.Numerator := f.Numerator + neg;
    tempd := f.Numerator / f.Denominator;
  end;
  Result := f;
end;
Delphi-Quellcode:
var
  f: TFraction;

...

f := Dec2Frac(1.66667,0.001);
// f.Numerator = 5
// f.Denominator = 3
Jan Steffens
Der Fachwortgenerator - 100% Schwachsinn --- Der UPnP Router Manager - Kommentare erwünscht!
  Mit Zitat antworten Zitat