Thema: Rechenfehler

Einzelnen Beitrag anzeigen

Sebtis

Registriert seit: 5. Mär 2010
5 Beiträge
 
#1

Rechenfehler

  Alt 5. Mär 2010, 22:45
Hallo.

Ich bin auf ein interessantes Problem gestoßen.

Gehen wir aus von folgender simpler Berechnung:
Delphi-Quellcode:
function Berechnung(start: Extended; ende: Integer): Extended;
var i: Integer;
    a: Extended;
begin
  a := start;
  for i:=1 to ende do
  begin
    a := a*1.55;
    a := floor(a);
  end;
  result := a;
end;
Funktioniert an sich ohne Fehlermeldung.

ABER!!!

Für den Startwert 3500 ergibt sich ab dem 13. Durchlauf in irgendeiner Art ein Fehler.
Denn Delphie liefert mir hierbei den Wert 1043025. Ein OpenOffice-Tabelle, die Schleife in C++ und sogar mein CASIO-Taschenrechner liefern mir hier den Wert 1043026. Dieser Fehler setzt sich dann logischerweise immer weiter fort.

Meine Überlegung war ja ein Rundungsfehler, aber
1. so wirklich viel zu runden gibts da ja nich ^^
und
2. sowohl bei kleineren als auch bei größeren Werten gibt es keine Probleme. Zum Beispiel liefert der Startwert 1000000(1 Million) auch nach dem 30. Durchlauf noch das korrekte Ergebnis.

Einzig andere Idee wäre, dass es am FloatToStrF liegt. Aber glauben tu ich das nich.

Ich bin mit meinem Latein am Ende. Weiß hier jemand was dazu?

Falls nötig: ich verwende Borland Delphi 2005 auf WindowsXP SP3.
  Mit Zitat antworten Zitat