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
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
>> 
> 
> 



Antwort per Email an