Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
VBA/Excel erkennt Gleichheit von Zahlen nicht
zurück: Rätselhaft: Import Makro - ignoriert Daten - HILFE! weiter: Kreuztabelle schreiben lassen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
maroe
Gast


Verfasst am:
19. Dez 2011, 17:21
Rufname:

VBA/Excel  erkennt Gleichheit von Zahlen nicht - VBA/Excel erkennt Gleichheit von Zahlen nicht

Nach oben
       Version: Office 2007

Hallo zusammen,

bei dem folgenden Code wird die Bedingung in der if-clause immer als false ausgewertet, obwohl die Zahlen gleich sind und auch in der Überwachung völlig identisch angezeigt werden.

Kennt jemand das Problem??



Sub negativ()
Dim a As Double
Dim b As Double


a = -28634.36
b = 23025.31
c = a + b
d = -5609.05

If d = c Then
MsgBox ("soso")
End If



End Sub





Freundlicher Gruß
maroe
Gast



Verfasst am:
19. Dez 2011, 17:31
Rufname:


AW: VBA/Excel  erkennt Gleichheit von Zahlen nicht - AW: VBA/Excel erkennt Gleichheit von Zahlen nicht

Nach oben
       Version: Office 2007

noch als Ergänzung. Wandelt man die zu vergleichenden Zahlen in Strings um wird die Bedingung als true ausgewertet. Der folgende Code verhält sich also erwartungsgemäß:

Code:

Sub negativ()
Dim a As Double
Dim b As Double


a = -28634.36
b = 23025.31
c = a + b
d = -5609.05

If CStr(d) = CStr(c) Then
MsgBox ("soso")
End If



End Sub
Gast



Verfasst am:
19. Dez 2011, 17:37
Rufname:

AW: VBA/Excel  erkennt Gleichheit von Zahlen nicht - AW: VBA/Excel erkennt Gleichheit von Zahlen nicht

Nach oben
       Version: Office 2007

runden hilft.

Erledigt.
Thomas Ramel
Microsoft Excel-MVP


Verfasst am:
19. Dez 2011, 17:40
Rufname: Thom
Wohnort: Glashütten - CH

AW: VBA/Excel  erkennt Gleichheit von Zahlen nicht - AW: VBA/Excel erkennt Gleichheit von Zahlen nicht

Nach oben
       Version: Office 2007

Grüezi Maroe

Auf Gleicheit zu prüfen ist selten eine gute Idee, spezielle wenn es sich um Gleitkommazahlen handelt.

Prüfe doch mal wie folgt, dann kannst Du auch definieren wie präzise die Übereinstimmung sein soll (hier auf 10 Nachkommastellen).


Code:
    If Round(d - c, 10) = 0 Then
        MsgBox ("soso")
    End If

_________________
Mit freundlichen Grüssen

Thomas Ramel
[Vista Ultimate SP-1 / xl2007 SP-2]
Gast



Verfasst am:
19. Dez 2011, 17:54
Rufname:


AW: VBA/Excel  erkennt Gleichheit von Zahlen nicht - AW: VBA/Excel erkennt Gleichheit von Zahlen nicht

Nach oben
       Version: Office 2007

Hi

vielleicht ergänzend zu Thomas:
wir Menschen rechnen im Dezimalsystem, der Computer im Binärsystem.
bei der Umwandlung vom einen System ins andere und wieder zurück kommt es immer wieder zu kleinen Ungenauigkeiten, die mal mehr oder weniger auffallen und insbesondere IST-GLEICH-Vergleiche unangenehm stören, weswegen dann gerundet werden sollte (was beim Umwandeln in einen String automatisch passiert).
Gruß Daniel
ps: wenn Gott gewollt hätte, daß der Mensch mit Computern arbeitet, dann hätte er ihm nur 8 Finger gegeben.
Phelan XLPH
Fortgeschritten


Verfasst am:
19. Dez 2011, 17:59
Rufname: Phelan

AW: VBA/Excel  erkennt Gleichheit von Zahlen nicht - AW: VBA/Excel erkennt Gleichheit von Zahlen nicht

Nach oben
       Version: Office 2007

Zitat:
bei der Umwandlung vom einen System ins andere und wieder zurück kommt es immer wieder zu kleinen Ungenauigkeiten


Das kann ich nicht glauben.

_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Phelan XLPH
Fortgeschritten


Verfasst am:
19. Dez 2011, 18:16
Rufname: Phelan

AW: VBA/Excel  erkennt Gleichheit von Zahlen nicht - AW: VBA/Excel erkennt Gleichheit von Zahlen nicht

Nach oben
       Version: Office 2007

Muss mich verbessern: >>
_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Thomas Ramel
Microsoft Excel-MVP


Verfasst am:
19. Dez 2011, 18:20
Rufname: Thom
Wohnort: Glashütten - CH

Re: AW: VBA/Excel  erkennt Gleichheit von Zahlen nicht - Re: AW: VBA/Excel erkennt Gleichheit von Zahlen nicht

Nach oben
       Version: Office 2007

Grüezi Phelan

Phelan XLPH hat folgendes geschrieben:
Zitat:
bei der Umwandlung vom einen System ins andere und wieder zurück kommt es immer wieder zu kleinen Ungenauigkeiten


Das kann ich nicht glauben.


Aber sicher ist das so.

Es gibt in jedem Zahlensystem Werte die nicht endlich dargestellt werden können - 1/3 ist z.B. ein solcher im gewohnten 10-er System.

0.1 ist dann ein solcher im binären System - das hängt von der Art und Weise ab wie diese Werte gespeichert werden.

Wandelt man nun den Wert 0.1 ins binäre System um, dann 'fehlt' da ein Teil, nämlich ab der Nachkommastelle die nicht mehr verarbeitet/dargestellt werden kann. Alle Berechnungen die damit dann gemacht werden sind daher 'fehlerbehaftet' und beim Umwandeln ins dezimale System werden sie weitergegeben.
Die Werte sind daher immer zu klein, nie zu gross und je näher ein Wert bei '0' liegt desto grösser ist die Wahrscheinlichkeit, dass es zu Gleitkommafehlern kommt.

Da kommen dann die Rundungs-Verfahren zum Einsatz mit denen festgelegt werden kann wie genau der Wert übereinstimmen/berechnet werden soll.

Hier noch ein paar Links zu diesem Thema - umfassend aber sehr interessant:

http://support.microsoft.com/default.aspx?scid=kb;de;42980
http://support.microsoft.com/?id=196652
http://www.kmkorn.de/artikel/fp/fp.htm
http://de.wikipedia.org/wiki/Gleitkommazahl
http://de.wikipedia.org/wiki/IEEE_754

_________________
Mit freundlichen Grüssen

Thomas Ramel
[Vista Ultimate SP-1 / xl2007 SP-2]
Phelan XLPH
Fortgeschritten


Verfasst am:
19. Dez 2011, 18:36
Rufname: Phelan

AW: VBA/Excel  erkennt Gleichheit von Zahlen nicht - AW: VBA/Excel erkennt Gleichheit von Zahlen nicht

Nach oben
       Version: Office 2007

Da hätte man das runden aber auch gleich mit einbauen können, wenns es eh ungenau ist.
_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Thomas Ramel
Microsoft Excel-MVP


Verfasst am:
19. Dez 2011, 19:46
Rufname: Thom
Wohnort: Glashütten - CH


Re: AW: VBA/Excel  erkennt Gleichheit von Zahlen nicht - Re: AW: VBA/Excel erkennt Gleichheit von Zahlen nicht

Nach oben
       Version: Office 2007

Grüezi Phelan

Phelan XLPH hat folgendes geschrieben:
Da hätte man das runden aber auch gleich mit einbauen können, wenns es eh ungenau ist.


...welches Runden denn... Wink

http://support.microsoft.com/?id=196652

_________________
Mit freundlichen Grüssen

Thomas Ramel
[Vista Ultimate SP-1 / xl2007 SP-2]
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: TEIL ( Zerlegen von Zahlen und Zählung ) 2 Gast Hans 1751 29. Okt 2005, 00:32
Arnim TEIL ( Zerlegen von Zahlen und Zählung )
Keine neuen Beiträge Excel Formeln: negative Zahlen in Klammern darstellen 5 EXCEL-User 2420 22. Sep 2005, 10:34
Gast negative Zahlen in Klammern darstellen
Keine neuen Beiträge Excel Formeln: gerade Zahlen herausfiltern 3 Dieperrs 3223 08. Jul 2005, 17:53
Mich_gibt_es_nicht_mehr gerade Zahlen herausfiltern
Keine neuen Beiträge Excel Formeln: Zahlen aus Zeichenfolge separieren 5 Fred Sontheim 1044 12. Jun 2005, 19:57
rainberg Zahlen aus Zeichenfolge separieren
Keine neuen Beiträge Excel Formeln: Ausblenden der oberen Zahlen und der Linken Buchstaben 3 Ich und Excel ... 2812 16. Apr 2005, 17:05
Ich und Excel ... Ausblenden der oberen Zahlen und der Linken Buchstaben
Keine neuen Beiträge Excel Formeln: Zahlen in Exel ausschreiben lassen 1 IceFire 6822 06. März 2005, 22:28
ae Zahlen in Exel ausschreiben lassen
Keine neuen Beiträge Excel Formeln: geschachtelte Wenn Abfrage mit Zahlen 4 Gast 1563 13. Jan 2005, 11:43
ae geschachtelte Wenn Abfrage mit Zahlen
Keine neuen Beiträge Excel Formeln: Mit welcher Formel erkennt Excel eine Zahl zw. 41 und 74? 2 BigMicha 728 02. Nov 2004, 11:53
BigMicha Mit welcher Formel erkennt Excel eine Zahl zw. 41 und 74?
Keine neuen Beiträge Excel Formeln: Zahlen aus gemischtem Textfeld isolieren? 4 Newbiee 2731 27. Sep 2004, 22:59
fl618 Zahlen aus gemischtem Textfeld isolieren?
Keine neuen Beiträge Excel Formeln: kursive Zahlen mit Makro berechnen? 2 abidmon 827 10. Sep 2004, 15:52
abidmon kursive Zahlen mit Makro berechnen?
Keine neuen Beiträge Excel Formeln: auch negative Zahlen links zählen 17 Red Hair 1629 04. Sep 2004, 14:32
ae auch negative Zahlen links zählen
Keine neuen Beiträge Excel Formeln: Addieren von negativen Zahlen 1 cnettekoven 612 12. Aug 2004, 11:04
lala Addieren von negativen Zahlen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Word VBA