Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
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

Probleme mit den Nachkommastellen...

Probleme mit den Nachkommastellen...
04.01.2009 16:33:44
Guenneisen
Hallo liebe Forumler und nachträglich noch ein frohes Neues!
ich hoffe, Ihr könnt mir helfen..
es geht um die Nachkommastellen...solz und kist sollen nach der 2ten nk-stelle abgeschlagen werden,
kapst jedoch nach der 2ten nk-stelle aufgerundet werden...klappt auch alles ganz gut...nun aber Folgendes:
wenn ich BMG = 181,66 setze, dann wird wird kapst (bei einem kistsatz = 0) zu 45,415 und kapst wird richtig auf 45,42 gerundet ...alles richtig!...jetzt aber folgendes Kuriosum:
wenn ich BMG = 3.227,22 setze, dann wird wird kapst (bei einem kistsatz = 0) zu 806,805 und kapst wird seltsamerweise auf 806,80 statt 806,81 gerundet ?
wenn ich kapst auf 3 NKstellen runden lasse, wird mir richtigeweise 806,805 angezeigt...
habt Ihr eine Erklärung bzw. Lsg. ?
Danke und Gruss
Gussfuss
With Me
brutto = .txtbrutto
bmg = .txtbmg
If optKiST8 = True Then
kistsatz = 0.08
kapstsatz = 24.51
ElseIf optKiST9 = True Then
kistsatz = 0.09
kapstsatz = 24.45
Else:
kistsatz = 0
kapstsatz = 25#
End If
kapst = VBA.Round(bmg / (4 + kistsatz), 2)
solz = kapst * 5.5 / 100
solz = Int(solz * 100) / 100
kist = kapst * kistsatz
kist = Int(kist * 100) / 100
gutschrift = brutto - kapst - solz - kist
End with
Me.txtkapst = kapst

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit den Nachkommastellen...
04.01.2009 17:21:29
Reinhard
Hi Guenneisen,
mir sind da in 20 Codezeilen die 11 Variablen zuviel.
Kannst du das eigentliche problem mal herauslösen und mit bedeutend weniger Varianlen nachstellen?
Gruß
Reinhard
AW: Probleme mit den Nachkommastellen...
04.01.2009 17:37:51
Gerd
Hallo Guenneisen (oder Gussfuss?),
langer Rede kurzer Sinn.
kapst = VBA.Round(bmg / (4 + kistsatz), 2)
Bugfix:
kapst = Application.Round(bmg / (4 + kistsatz), 2)
Wenn das nicht hilft, dann deklariere zusätzlich die entsprechende Variable "As Currency".
Gruß Gerd
AW: Probleme mit den Nachkommastellen...
05.01.2009 09:04:03
Guenneisen
Hallo Gerd,
sorry, wenn das Ganze zu lang geraten sein sollte...
hier noch mal die entscheidende Zeile:
kapst = Round(bmg /4, 2)
bei bmg = 181,66 rechnet er rundet er richtig auf 45,42 (von 45,415)
bei bmg = 3.227,22 rundet er falsch ab 806,80 (von 806,805) ?
1) Deklaration als Currency hat leider noch nicht den Erfolg gebracht
2) wenn ich Application. eingebe, bietet er mir kein "Round" an und der Compiler kann es auch nicht verabeiten
Danke vorab!
Gruss
Gussfuss
Anzeige
AW: Probleme mit den Nachkommastellen...
05.01.2009 09:45:44
Hajo_Zi
Hallo Nick,
ich habe es jetzt getestet.

Sub Test1()
MsgBox Application.WorksheetFunction.Round(806.805, 2)
End Sub


Es wird auf 806,81 gerundet.

AW: Probleme mit den Nachkommastellen...
05.01.2009 14:08:44
Guenneisen
Hallo Hajo
muss ich eine spezielle Bibliothek dazunehmen, damit der Compiler den Code
Application.WorksheetFunction.Round(806.805, 2)
lesen kann
bei mir nimmt er nur "Round" und das liefert 806,80...
Danke und Gruß
Günther
AW: Probleme mit den Nachkommastellen...
05.01.2009 14:23:07
Hajo_Zi
Hallo Günter,
Application.WorksheetFunction muss bei bei einigen Versionen benutzen nur Round geht erst ab einer bestimmten Version, da habe ich es mir angewöhnt es immer zu nehmen. Eine besondere Biblio ist nicht notwendig, das ist ja Excel. Inb deiner Version geht es ohne den Zusatz und Du siehst den Erfolg. Warum da ein Unterschied gemacht wird?
Gruß Hajo
Anzeige
AW: Probleme mit den Nachkommastellen...
05.01.2009 17:17:39
Guenneisen
Hallo Hajo,
ich sehe den (miss-)erfolg...runden klappt ja auch in meiner Version, jedoch wenn die 2te NK-stelle eine Null ist, rundet er ab...
hast Du eine Idee, wie man das Problem umschiffen könnte?
Nochmals danke!
Gruss
Günther
AW: Probleme mit den Nachkommastellen...
05.01.2009 17:29:04
Hajo_Zi
Hallo Günter,
benutze doch Application. Die Application ist ja in dem Fall Excel.
VBA unterscheidet sich ein wenig von Excel.
In Excel gibt es den 29.02.1900 und in VBA nicht.
So wird in Excel korrekt gerundet (mit Appliation Excel) und in VBA eben nicht.
Gruß Hajo
Anzeige
AW: Probleme mit den Nachkommastellen...
05.01.2009 17:48:50
Guenneisen
auch Application.round versteht mein compiler nicht...
ich starte das Formular/makro aus word - hängt es damit zusammen?
Gruß
Günther
AW: Probleme mit den Nachkommastellen...
05.01.2009 18:00:57
Hajo_Zi
Hallo Güter,
mit Application sprichts Du die aktuelle an und das wäre Word.

Option Explicit
Sub Guenneisen()
Dim oExcel_App As Object
Set oExcel_App = GetObject(Class:="Excel.Application")
MsgBox oExcel_App.WorksheetFunction.Round(806.605, 2)
Set oExcel_App = Nothing
End Sub


Gruß Hajo

AW: Probleme mit den Nachkommastellen...
06.01.2009 15:40:17
Guenneisen
Hallo Hajo,
hab das Formular jetzt nach Excel exportiert und jetzt rundet er richtig!(?)
vielen Dank für Deine Hilfe und schönen Gruß!
Günther
Anzeige
Warum dann Frage noch offen?
06.01.2009 16:13:00
Reinhard


AW: Probleme mit den Nachkommastellen...
06.01.2009 17:52:35
Hajo_Zi
Hallo Guenneisen,
mit meinem Code hätte es aber auch in Wod funktioniert.
Gruß Hajo

179 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige