Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte » 

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Double Werte vergleichen (https://www.delphipraxis.net/200794-double-werte-vergleichen.html)

DieDolly 25. Mai 2019 22:55

Double Werte vergleichen
 
Wie vergleicht man Double-Werte?
Ich habe A := 1.0 und B := 10.0.

Wenn ich nun if A >= B vergleiche erhalte ich komischerweise True.

Luckie 25. Mai 2019 23:21

AW: Double Werte vergleichen
 
Zeig mal deinen Code. Man sollte zudem bei Double-Werten, daran denken, dass die interne Darstellung von der angezeiget abweichen kann. Bei Rechnungen kann zum Beispiel 10.0000000000001 rauskommen, was als 10 ausgegeben wird. Aber ein Vergleich auf x = 10 schlägt dann fehl, wenn x = 10 ist. Deswegen berücksichtigt man dieses Verhalten, indem man ein Epsilon-Wert einführt, in dem man angibt wie ungenau es sein darf.

Uwe Raabe 26. Mai 2019 00:15

AW: Double Werte vergleichen
 
Ein Vergleich von 1.0 und 10.0 auf größer-gleich scheitert sicher nicht an der Genauigkeit.

Luckie 26. Mai 2019 01:17

AW: Double Werte vergleichen
 
Wer weiß? :lol:

Deswegen habe ich ja nach Code gefragt. Das mit der Genauigkeit war nur eine Zusatzinfo.

Andreas13 26. Mai 2019 21:08

AW: Double Werte vergleichen
 
Bei recht nahe beienander liegenden Werten sollte man einen unscharfen Vergleich verwenden:

Delphi-Quellcode:
System.Math.SameValue(const a, b: Double; Epsilon: Double): Boolean; overload;
Das vermeidet automatisch auftretende Rundungsfehler, falls eine Dezimal-Zahl binär nicht exakt abgebildet werden kann.

Gruß
Andreas

Luckie 26. Mai 2019 21:09

AW: Double Werte vergleichen
 
Genau das meine ich.

Amateurprofi 27. Mai 2019 02:15

AW: Double Werte vergleichen
 
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.

Luckie 27. Mai 2019 07:17

AW: Double Werte vergleichen
 
Zitat:

Zitat von Amateurprofi (Beitrag 1433180)
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.

Wie ich schon sagte, es war nur eine Zusatzinfo passend zum Thema. :roll:

Rollo62 27. Mai 2019 08:16

AW: Double Werte vergleichen
 
Zitat:

Zitat von Amateurprofi (Beitrag 1433180)
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.

mkinzler 27. Mai 2019 08:20

AW: Double Werte vergleichen
 
Zitat:

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.
Es geht um Rundungsfehler bei der Prüfung auf Gleichheit (angezeigtes 1.0 muss nicht gleich 1.0 sein).


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 Uhr.
Seite 1 von 4  1 23     Letzte » 

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz