Round-Funktion funktioniert nicht

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Round-Funktion funktioniert nicht von: WHN
Geschrieben am: 08.03.2005 10:21:28

Hallo Leute,
ich habe ein Problem mit der Round-Funktion.

Function Round(Zahl as Single, Nachkommastellen as Long)

Wenn ich schreibe:

Betrag = Round(222.2222,2)

wird die Zahl nicht auf zwei Nachkomma-Stellen gerundet.

Kann mir Jemand sagen woran es liegt?

Viele Grüße
Werner

Bild


Betrifft: AW: Round-Funktion funktioniert nicht von: serge
Geschrieben am: 08.03.2005 10:27:03

Hi Werner
bei mir geht es mit =RUNDEN(222.2222;2) (; nicht ,)
Serge


Bild


Betrifft: AW: Round-Funktion funktioniert nicht von: WHN
Geschrieben am: 08.03.2005 10:35:35

Hallo Serge, Danke für die Hilfe.
Ich habe vergessen zu sagen, daß ich die Round-Funktion im VBA-Code benutze.
So viel ich weiß geht dort Runden nicht.

Gruß´Werner


Bild


Betrifft: AW: Round-Funktion funktioniert nicht von: Reinhard
Geschrieben am: 08.03.2005 10:42:20

Hi Werner,
Sub tt()
betrag = Round(222.2222, 2)
MsgBox betrag
MsgBox Len(betrag)
End Sub

zeigt 222,22 an und auch die Länge von 6 kommt hin. Was klappt bei dir nicht?
Gruß
Reinhard


Bild


Betrifft: AW: Round-Funktion funktioniert nicht von: WHN
Geschrieben am: 08.03.2005 11:05:20

Hallo Reinhard,
Danke fur deine Antwort.
Meine Prozedur sieht etwa so aus:

Sub SummeÜbertragen
Dim Betrag as Single
  Betrag = Round(Worksheets("XYZ").Cells(Y,X),2)
  Worksheets("ABC").Cells(Y,X).Value = Betrag
End Sub


Der Betrag wird ohne Probleme übertragen.
Ich habe die Zellen auf zwei Nachkommastellen formatiert, die Anzeige erfolgt demnach auch mit zwei Nachkommastellen.
Trotzdem zieht die Zahl viele Nachkommastelle hinter sich her.
Da ich hier ca. 500 Beträge errechne und dann eine Summe bilde, bekomme ich hier ständig Rundungsfehler. Das macht oftmals 20 bis 30 Cent aus.

Ich verstehe nicht warum die Funktion Round hier nicht wie angegeben auf 2 Nachkommastellen rundet.
Komischerweise wird auf NULL Nachkommastellen gerundet wenn ich 0 angebe.
Sobald ich aber mehr als 0 (z.B. 1) angebe erhalte ich viele Nachkommastellen.

Gruß Werner


Bild


Betrifft: AW: Round-Funktion funktioniert nicht von: Martin Beck
Geschrieben am: 08.03.2005 11:15:51

Hallo Werner,

es wird schon gerundet, nur nicht mit ausreichender Genauigkeit, was Du mit Deiner Dim-Anweisung "verschuldet" hast. Versuche

Dim Betrag as Double

Gruß
Martin Beck


Bild


Betrifft: AW: Round-Funktion funktioniert nicht von: WHN
Geschrieben am: 08.03.2005 14:58:23

Hallo Martin,
ob Single oder Double, das Ergebnis ist das gleiche.
Warum sollte die Funktion Round die Zahl auch anders behandeln wenn SINGLE oder DOUBLE vereinbart wurde, beides sind Nachkomma-Zahlen.

Gruß Werner


Bild


Betrifft: AW: Round-Funktion funktioniert nicht von: Martin Beck
Geschrieben am: 08.03.2005 18:33:50

Hallo Werner,

das magst Du so sehen, hast Du es auch mal ausprobiert?

Aus der VBA-Hilfe:

Double-Datentyp


Variablen vom Datentyp Double (Gleitkommazahl mit doppelter Genauigkeit) werden als 64-Bit-Gleitkommazahlen (8 Bytes) nach IEEE im Bereich von -1,79769313486231E308 bis -4,94065645841247E-324 für negative Werte und von 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte gespeichert. Das Typkennzeichen für Double ist das Zeichen (#).


Single-Datentyp


Variablen vom Datentyp Single (Gleitkommazahl mit einfacher Genauigkeit) werden als 32-Bit-Gleitkommazahlen (4 Bytes) nach IEEE im Bereich von -3,402823E38 bis -1,401298E-45 für negative Werte und von 1,401298E-45 bis 3,402823E38 für positive Werte gespeichert. Das Typkennzeichen für Single ist das Ausrufezeichen (!).


Wert in der Tabelle: 123,34567
Ergebnis Deines Makros mit Single-Datentyp: 123,349998474121
Ergebnis Deines Makros mit Double-Datentyp: 123,35

Gruß
Martin Beck


Bild


Betrifft: AW: Round-Funktion funktioniert nicht von: WHN
Geschrieben am: 11.03.2005 10:11:23

Hallo Martin, Danke für deine Hilfe.
Leider bringe ich auch mit Double den Rattenschwanz an Nachkommastellen nicht weg.
Ich verstehe es auch nicht.

Freundliche Grüße
Werner


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Vereinfachen"