Wie/Was der rechnet weiß ich nicht,
aber die Genauigkeit stimmt schon.
Nach der 20-sten Stelle schleichen sich Fehler ein:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
e: Extended;
i: Integer;
begin
e := 1;
e := e / 3;
for i := 0 to 49 do
begin
if i mod 10 = 0 then Write(' ');
Write(Trunc(e) mod 10);
e := Frac(e) * 10;
end;
WriteLn;
ReadLn;
end.
Wenn du mehr willst, dann wirst du wohl eine MathLib / Mathe-Bibliothek verwenden müssen, welche mit größeren Zahlen arbeiten kann, da sie keinen dieser kleinen Datentypen direkt verwendet.
PS: double precision ist
Double ... Extended ist etwas mehr,
aber soweit ich das gehört habe, will man zukünftig Extended für die Programmierer sperren (für diese gibt es dann nur noch Single und Double, wobei Extended nur noch als Systeminternes Rechenformat diehnen soll.