Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1456to1460
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Berechnung ergibt nicht Null

Berechnung ergibt nicht Null
20.11.2015 08:38:26
Frank
Guten Morgen an Alle,
ich habe ein kurioses Problem und wollte fragen ob sich das jemand erklären kann. Ich habe in eine Funktion in VBA zwei Variablen (a und b) vom Typ Double. Während der Berechnung kommt für beide Werte exakt 0,004 raus. Anschließend rechne ich a-b und es kommt 5,97E-20 raus und eben nicht Null. Gut das ist zwar fast Null, aber wie kann man dieses Ergebnis erklären? Mache ich den selben Rechengang in Excel selbst, dann kommt genau Null raus.
Ich bin gespannt, ob mir jemand was dazu sagen kann.
Vielen Dank und viele Grüße
Frank

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wikipedia: IEEE 754 oder Recherche (owT)
20.11.2015 08:48:53
EtoPHG

AW: Wikipedia: IEEE 754 oder Recherche (owT)
20.11.2015 09:19:41
Frank
Vielen Dank EtoPHG,
mit diesem Problem hatte ich bisher noch nicht zu tun, aber gut zu wissen. Und für sowas gibt es noch keine Lösung? Also ich habe mir das Beispiel bei Wikipedia angesehen. Man rechnet eine Gleitkommazahl in eine binäre Zahl um und anschließend wieder zurück und es ergibt sich nicht die selbe Zahl...
Was würdest du denn empfehlen ab welchem Zahlenwert man das Ergebnis zu Null setzt?`
Sagen wir:
Ergebnis = a-b
If Ergebnis 
Viele Grüße
Frank

Empfehlung Runden
20.11.2015 09:50:44
EtoPHG
Hallo Frank,
Du kannst die Frage nicht so stellen: ab welchem Zahlenwert man das Ergebnis zu Null setzt
Du musst hingegen die Frage beantworten, bis zu welcher Genauigkeit dein Resultat wichtig ist.
Die allgemeine Empfehlung heisst darum:
IF ROUND(a,AnzahlStellenDerGenauigkeit) = ROUND(b,AnzahlStellenDerGenauigkeit) Then
a und b sind gleich
Else
a und b sind ungleich
End If
Wenn du dich daran hälst, kannst du auch WF's Beispiel widerlegen, nämlich mit
=RUNDEN((2+0.06-2)*100;0)
=RUNDEN((4+0.06-4)*100;0)
Gruess Hansueli

Anzeige
AW: Empfehlung Runden
20.11.2015 15:56:27
Frank
Hallo Hansueli,
vielen Dank für deine ausführliche Antwort. Ich werde das so umsetzen.
Ich wünsche dir ein schönes Wochenende.
Viele Grüße
Frank

anderes Beispiel ohne Rundung
20.11.2015 16:57:49
WF
=REST(2,06*1000;1)=0
und
=REST(4,06*1000;1)=0
WF

das ist die Fließkommaproblematik
20.11.2015 09:18:34
WF
Hi,
gib mal ein =GANZZAHL((2+0,06-2)*100)
und nun =GANZZAHL((4+0,06-4)*100)
toll oder ?
WF

AW: das ist die Fließkommaproblematik
20.11.2015 09:36:54
Frank
Hallo WF,
das ist ja witzig bzw. eigentlich nicht... :o). Kruioser Sachverhalt.
Wie soll man denn solch ein Problem umgehen? Normalerweise befasse ich mich nur mit der Berechnung im Allgemeinen, aber das ich nun das Rechenergebnis noch auf Richtigkeit hinterfragen muss...
Gibt es für die Fließkommaproblematik einen Lösungsansatz?
Viele Grüße
Frank

Anzeige
Problem umgehen: Runden. owT
20.11.2015 09:50:52
Rudi

das ist klar
20.11.2015 10:06:05
WF
Hi,
wer denkt aber bei so einer simplen Berechnung an Rundung.
WF

Du: GANZZAHL = ABRUNDEN <> RUNDEN (owT)
20.11.2015 10:07:55
EtoPHG

AW: das ist klar
20.11.2015 10:10:48
Rudi
Hallo,
vielleicht schon im Vorfeld bei der Berechnung von a und b.
Gruß
Rudi

AW: das ist klar
20.11.2015 10:20:58
EtoPHG
Hallo Rudi,
Wieso im Vorfeld? WF widerlegt sich doch selbst:
wer denkt aber bei so einer simplen Berechnung an Rundung.
Er selbst, denn er benutzt eine RUNDUNGS-FUNKTION, aber eine FALSCHE!
GANZZAHL = Rundet eine Zahl auf die nächstkleinere ganze Zahl ab!
Gruess Hansueli ;-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige