AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Trunc Fehler ???

Ein Thema von Kraisel · begonnen am 24. Okt 2015 · letzter Beitrag vom 25. Okt 2015
 
Benutzerbild von Kraisel
Kraisel

Registriert seit: 19. Mär 2012
Ort: Bochum-Linden
64 Beiträge
 
Delphi 12 Athens
 
#1

Trunc Fehler ???

  Alt 24. Okt 2015, 14:13
Hallo,

Handelt es sich bei Trunc um einen Fehler, oder gibt es eine gute Erklärung:

Delphi-Quellcode:
procedure Test;
var a, b, e1, e2, e3, e4: Double; // mit Single immer OK ???
begin
  a := 0.1;

  b := 1 / a;
  e1 := Trunc (b); // e1 = 10 OK

  e2 := Trunc (1 / a); // e2 = 9 falsch

  e3 := Trunc (RoundTo(1 / a, -14)); // e3 = 10 OK
  e4 := Trunc (RoundTo(1 / a, -15)); // e4 = 9 falsch

  Assert (e1 = 10);
  Assert (e2 = 10); // Abbruch durch Assertion
  Assert (e3 = 10);
  Assert (e4 = 10); // Abbruch durch Assertion
end;
Natürlich ist mir klar, dass es Rundungsfehler gibt und Trunc diese dann ungünstig abschneiden kann. So ist z.B. (5 - 2 x Resolution) ja 4 und nicht 5. In Test erkennt man, dass der Rundungsfehler zwischen der 14 und 15 Stelle hinter dem Komma entsteht. Soweit ja OK.

Aber wieso ist e1 richtig und e2 falsch, da hier doch lediglich eine lokale Kopie eines berechneten Wertes anstatt der berechnete Wert selber genutzt wird? Und warum funktioniert das alles bei Single einwandfrei?

Vielen Dank.
Peter Kaisler
Das einzig Komplizierte ist zu begreifen wie einfach es ist.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz