AGB  ·  Datenschutz  ·  Impressum  







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

Double Werte vergleichen

Ein Thema von DieDolly · begonnen am 25. Mai 2019 · letzter Beitrag vom 28. Mai 2019
Antwort Antwort
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.101 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Double Werte vergleichen

  Alt 27. Mai 2019, 16:41
Ihr Lieben,
die Hinweise auf die Vergleichstoleranz mögen ja ganz nett sein, aber wenn man 1.0 mit 10.0 vergleicht, dann braucht man keine Vergleichstoleranz.
Vielleich zeigt Dolly uns mal etwas Code.
Wer sagt denn das eine Vergleichstoleranz nicht 10.0 oder 100.0 oder 1000.0 sein kann ?
Meiner Meinung nach gibt es immer eine, je nach Aufgabenstellung.
Wo soll denn da eine Vergleichstoleranz 10.0 oder 100.0 oder 1000.0 herkommen?
Lies doch mal #1.
DieDolly schrieb
Zitat:
Ich habe A := 1.0 und B := 10.0.
Wenn ich nun if A >= B vergleiche erhalte ich komischerweise True.
Bei A >= B ist keine Vergleichstoleranz im Spiel, denn es werden 2 ganze Zahlen verglichen, bei denen keinerlei Differenzen auftreten können, die dadurch entstehen, dass gebrochene Zahlen binär nicht präzise dargestellt werden können.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.879 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Double Werte vergleichen

  Alt 27. Mai 2019, 16:50
Zitat:
denn es werden 2 ganze Zahlen verglichen
Es handelt sich aber um 2 Double-Werte.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Double Werte vergleichen

  Alt 27. Mai 2019, 17:18
Zitat:
denn es werden 2 ganze Zahlen verglichen
Es handelt sich aber um 2 Double-Werte.
Zum einem das. Und wir wissen nicht, wo sie herkommen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.101 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Double Werte vergleichen

  Alt 27. Mai 2019, 23:41
Zitat:
denn es werden 2 ganze Zahlen verglichen
Es handelt sich aber um 2 Double-Werte.
Zum einem das. Und wir wissen nicht, wo sie herkommen.
Doch, wir wissen sehr genau wo sie herkommen.
Wie schrieb DieDolly
Zitat:
Ich habe A := 1.0 und B := 10.0.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Double Werte vergleichen

  Alt 28. Mai 2019, 01:00
Das hat sie hier geschrieben. Aber ich gehe mal davon aus, dass es keine Konstanten sind, sondern Ergebnisse voran gegangener Rechnungen. Und da ist es durchaus interessant, was vorher passiert ist. Wurde gerundet? Wurde gecastet? Wie sehen die Ursprungswerte der Rechnung aus? Mit welchen Datentypen wurde gerechnet? Das kann alles eine Rolle spielen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#6

AW: Double Werte vergleichen

  Alt 28. Mai 2019, 07:40
*Räusper*
Die Diskussion basiert auf einem Fehler...das ist allen klar?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Double Werte vergleichen

  Alt 28. Mai 2019, 08:19
Psst stör sie nicht. Die Anfänger sitzen andächtig vor dem Monitor und staunen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.101 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Double Werte vergleichen

  Alt 27. Mai 2019, 23:38
Zitat:
denn es werden 2 ganze Zahlen verglichen
Es handelt sich aber um 2 Double-Werte.
Na und?
Wenn du in einem Double eine Zahl ohne Nachkommastellen (oder alle Nachkommastellen 0 sind) und die Zahl +/- 2^52 nicht übersteigt, dann ist das eine Integerzahl.
Bei Vergleichen min anderen Zahlen, die ebenfalls keine Nachkommastellen haben, treten die Probleme mit Vergleichstoleranzen nicht auf.
Bei dem Problem, um das es hier ging, und mittlerweise wissen wird ja, dass das Problem keines war, ging es um zwei Zahlen, nämlich 1.0 und 10.0, eben Zahlen ohne Nachkommazahlen.
Schau dir doch mal im Debugger an, wie solche Zahlen in der FPU gezeigt werden. Als Zahlen ohne Nachkommastellen.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:25 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