AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zahlenvergleich vom Typ Real

Ein Thema von Sidi61 · begonnen am 7. Jan 2018 · letzter Beitrag vom 8. Jan 2018
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

AW: Zahlenvergleich vom Typ Real

  Alt 7. Jan 2018, 19:48
Das nennt sich Gleitkommaungenauigkeit bzw. Rundungsfehler. Du solltest Floats am besten immer mit einer Epsilon-Schranke vergleichen, also z.b. if (A + B < Epsilon) , wobei Epsilon einfach eine enorm kleine Zahl sein sollte.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Sidi61

Registriert seit: 13. Jun 2006
97 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Zahlenvergleich vom Typ Real

  Alt 7. Jan 2018, 19:57
verstehe ich jetzt nicht

Rundungsfehler bei Division ja, aber bei Addition??
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Zahlenvergleich vom Typ Real

  Alt 7. Jan 2018, 20:17
Doch das kommt leider vor, ich hatte mal ein einfaches Beispiel, finde ich aber nicht, da kam beim Typen real bei 3x4 oder sowas 11,99 raus. Extended als Type wäre quick and dirty.
Philip
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.784 Beiträge
 
Delphi 12 Athens
 
#4

AW: Zahlenvergleich vom Typ Real

  Alt 7. Jan 2018, 20:26
Die Unit System.Math bietet dafür die Funktion SameValue .
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Zahlenvergleich vom Typ Real

  Alt 8. Jan 2018, 08:41
Du solltest den Typ Currency verwenden. Die Fließkommatypen Sind meist nur Näherungswerte (die Mathematik dahinter können Dir andere besser erklären). D.H es kann sein, daß Du 12.5 erwartest aber 12,4999999 oder 12,50001 erhältst. Wenn du die Werte mit einer Nachkommastelle darstellst sehen sie gleich aus sind es aber nicht.

Gruß
K-H

P.S.

verstehe ich jetzt nicht

Rundungsfehler bei Division ja, aber bei Addition??
Fließkommazahlen sind Berechnungen.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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 23:05 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