Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

Vergleiche von Double- und Integer-Zahlen

von RedakteurytwinkySeite 3 von 3
Dim As Double d1=1.0, d2=3.0, d=d1/d2, Epsilon=1E-16
Print "d=" &d
Print "d1=" &d1 &!"\nd2=" &d2 &!"\nd1/d2=d? " &*IIf(d1/d2=d, @"True", @"False")
Print "|d-d1/d2|=" &Abs(d-d1/d2)
Print "Epsilon=" &Epsilon
If Abs(d-d1/d2)<Epsilon Then Print "Die Zahlen k”nnten auch gleich sein.."

Wichtig hierbei ist nur die geeignete Wahl von Epsilon! Ist es zu klein, trifft es möglicherweise niemals zu, ist es zu groß, werden unterschiedliche Zahlen als gleich bewertet

Dim As Double d1=1/7, d2=1/9, d=d1/d2, Epsilon=0.1
Print "d1=" &d1 &!"\nd2=" &d2 &!"\nd1=d2? " &*IIf(d1=d2, @"True", @"False")
Print "|d1-d2|=" &Abs(d1-d2)
Print "Epsilon=" &Epsilon
Print *IIf(Abs(d1-d2)<Epsilon, @"Die Zahlen k”nnten auch gleich sein..", @"Unwahrscheinlich, dass die Zahlen gleich sind")

Hier wäre der Epsilon-Bereich falsch gewählt, da die Zahlen aus völlig verschiedenen Operationen stammen und nicht gleich sein können! Eine genaue Empfehlung für Epsilon kann es also nicht geben, hier muss der Programmierer entscheiden, ob und wieviel Unsicherheit in seinem Programm zugelassen werden soll.
Hier gilt wieder einmal das oberste Programmiergesetz:
Ein Rechner macht nicht das, was der Programmierer denkt,
sondern das, was der Programmierer schreibt..
Fröhliches Vergleichen
Gruß
ytwinky

 

Gehe zu Seite Gehe zu Seite  1  2  3  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 04.09.2010 von Redakteurytwinky angelegt.
  • Die aktuellste Version wurde am 06.09.2010 von Redakteurytwinky gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen