Das liegt in der Natur von Fliesskomma-Operationen. Damit hast Du letztlich nur bewiesen, dass der Rundungsansatz von mir vorhin ein besseres Ergebnis liefert :-)
Deine berechnete Zahl ist eben dabei nicht 0.825, sondern etwas mehr (oder weniger)..., z.B.: 0.8250000000000011 Also müsstest Du : i3=0.8250000000000011 MsgBox str(i3)+" "+format(i3,",###.00")// ergibt 0.825 und 0,83 nehmen, oder aber wie vorhin schon ausgiebig vorgebetet, oder Du rechnest mit Integern (was eigentlich ohnehin die schlauere Variante wäre). a. On 01.02.10 15:50, "Stefan Sicurella" <sicure...@onlymac.de> wrote: > Hi, > > so hier der Code, ich habe die Werte, die ich normalerweise aus der Listbox > nehme fest eingegeben.... > > dim i1,i2,i3,br,rabatt as double > rabatt=45 // Rabatt in % > i1=16.500 // VK Brutto Betrag > br=i1/100 > br=br*rabatt // in diesem Beispiel 45 % Rabatt > i1=i1-br // Ergibt 9,075 brutto VK > i2=i1/(1.1) // Gesamtnetto = Gesamtbrutto geteilt durch MwSt. in diesem Fall > 10% > i3=i1-i2 > > MsgBox str(i3)+" "+format(i3,",###.00")// ergibt 0.825 und 0,83 > > i3=0.825 > > MsgBox str(i3)+" "+format(i3,",###.00")// ergibt 0.825 und 0,82 > > und nu ;-) > > > Gruß > > Stefan > >> Ohne Code weiss ich's auch nicht >> >> a. >> >> >> On 01.02.10 14:52, "Stefan Sicurella" <sicure...@onlymac.de> wrote: >> >>> Ok, das ist sehr merkwürdig, aber ich weiß nicht, was ich da falsch machen >>> könnte >>> >>> Gruß >>> >>> Stefan >>> >>>> >>>>> aus 0.825 wird 0.82 mit deinem Code unten, >>>> >>>> Bei mir nicht: >>>> MsgBox str(round_kaufman(0.825)) >>>> >>>> Ergebnis 0,83 >>>> >>>> >>>> hast du auch 2009 R5.1? >>>> >>>> ja >>>> >>>> a. >>>> >>>> >>>>> Stefan >>>>> >>>>>> Und was geht NICHT? >>>>>> >>>>>> Bei mir geht's auch so: >>>>>> >>>>>> dim d as Double >>>>>> const factor=100.0 >>>>>> d = myFloatValue*factor >>>>>> return round(d)/factor >>>>>> >>>>>> a. >>>>>> >>>>>> >>>>>> >>>>>> On 01.02.10 14:29, "Stefan Sicurella" <sicure...@onlymac.de> wrote: >>>>>> >>>>>>> Hallo, >>>>>>> >>>>>>> den Wert errechne ich aus Brutto-Beträgen und der dazugehörigen MwSt. >>>>>>> Er dürfte nicht relevant sein, ist er aber in RB 2009 R5.1 >>>>>>> Meine Paniklösung, die auf jeden Fall funktioniert: >>>>>>> >>>>>>> Function round_kaufman(myFloatValue as double) As double >>>>>>> dim d as Double >>>>>>> dim sk as string >>>>>>> const factor=100 >>>>>>> d = myFloatValue*factor >>>>>>> sk=format(d,",###.0") >>>>>>> if right(sk,1)="5" then d=d+0.1 >>>>>>> return round(d)/factor >>>>>>> >>>>>>> End Function >>>>>>> >>>>>>> Gruß >>>>>>> >>>>>>> Stefan >>>>>>> >>>>>>>> Am 01.02.10 14:03, schrieb Stefan Sicurella: >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> 0.825 hatte ich auch, habs nur in der Mail von Hand falsch getippt... >>>>>>>>> >>>>>>>>> ja, wenn ich es so mache wie unten beschrieben geht es auch. >>>>>>>>> Wenn ich allerdings a durch addieren mehrerer Werte auch errechne geht >>>>>>>>> es >>>>>>>>> wieder nicht. >>>>>>>>> >>>>>>>>> Nur wenn ich expliziert die Zahl hinschreibe geht es... das ist doch >>>>>>>>> irre? >>>>>>>>> ;-) >>>>>>>>> >>>>>>>> >>>>>>>> Die Herkunft des Wertes von "a" dürfte generell nicht relevant sein. >>>>>>>> Wenn >>>>>>>> du >>>>>>>> dir eine Funktion baust welche den gerundeten Wert zurückgibt, so >>>>>>>> müsste >>>>>>>> das >>>>>>>> Ergebnis immer identisch sein. >>>>>>>> >>>>>>>> Hast du mal Beispiel-Code woran man sehen kann wie die >>>>>>>> unterschiedlichen >>>>>>>> Wrte >>>>>>>> (z.B. beim Addieren etc.) zustande kommen? >>>>>>>> >>>>>>>> -- >>>>>>>> Michael Kagerbauer >>>>>>>> http://rbcoder.de >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> >>>> >>> >>> >> >> >> > >