AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi if-Abfrage mit Extended - Trotz gleichheit False

if-Abfrage mit Extended - Trotz gleichheit False

Ein Thema von Captnemo · begonnen am 7. Nov 2012 · letzter Beitrag vom 8. Nov 2012
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: if-Abfrage mit Extended - Trotz gleichheit False

  Alt 7. Nov 2012, 21:40
Entschuldige, aber diese Fragestellung ist doch wohl Unfug.

Das Problem kommt doch von einer anderen Stelle. Du hast 2 Systeme im Einsatz von wo du die Daten bekommst.

Um dieses Phänomen wirklich zu untersuchen, solltest du Die Zahl von String in ein Extended und dann in die Datenbank schreiben. Dann aus der Datenbank wieder auslesen und mit dem Wert wieder vergleichen.

Auch wenn es hier jetzt zu einer Gleichheit kommt, kannst du dich aber niemals darauf verlassen, weil du nicht wissen kannst, wie der Wert in die Datenbank gekommen ist (direkte Zuweisung oder durch eine Berechnung oder woher auch immer).

Zudem sollte dieses Problem bei Fließkommazahlen bekannt sein. Und wenn man mal genau darüber nachdenkt, dann kommt man auch darauf, dass man ja nur endlich Informationen zu einem Wert speichern kann, es aber ganz prominent die Zahl PI gibt, die aus einer unendlichen Folge von Nachkommastellen besteht. Wie soll man also etwas unendliches in einem endlichen System speichern können ohne eben so eine Annäherung zu benutzen? Es kommt eben auf die Genauigkeit an, die ich benötige und diese bestimmt, welche Ungenauigkeit ich verkraften kann.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#2

AW: if-Abfrage mit Extended - Trotz gleichheit False

  Alt 8. Nov 2012, 10:32
Entschuldige, aber diese Fragestellung ist doch wohl Unfug.
Warum so unfreundlich? Was ist Unfug daran, einen Frage zu etwas zu stellen um sich eine Problematik zu verdeutlichen?

Um dieses Phänomen wirklich zu untersuchen, solltest du Die Zahl von String in ein Extended und dann in die Datenbank schreiben. Dann aus der Datenbank wieder auslesen und mit dem Wert wieder vergleichen.
Genauso mache ich es ja, dadurch bin ich ja überhaupt auf die Frage gestoßen.

Also stellt sich mir die Frage, ob eine Zuweisung ala
...
auch evtl. abweichende Nachkommastellen hinterläßt.
Ganz klar ja. Denn die 0.9 lassen sich nicht exakt als Zweierpotenz schreiben.
Der Computer macht daraus bei der Umwandlung sowas wie
Code:
29.9  = 11101.111001100110011
Und das ergibt jetzt 0.9001464844 im Dezimalsystem. Mit mehr Stellen wird es noch genauer, aber es deutet sich bereits an dass der Nachkommaanteil periodisch ist und somit durch eine endliche Anzahl an Bits nur angenähert werden kann
Das leuchtet mir natürlich ein.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:03 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-2025 by Thomas Breitkreuz