Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Rechen"fehler" bei Prozentrechnung ausgleichen

UselessUser / 4 Antworten / Flachansicht Nickles

Hallo Leute,

habe hier ein rechnerisches Problem in einem VB-Programm. Rein programmtechnisch ist eine Änderung aufwendig, ich müsste einige Programmteile neu schreiben und es handelt sich mittlerweile um ein größeres Projekt.
Dieses Phänomen tritt nur bei einzelnen Zahlen auf, ich weiß nicht, ob man es überhaupt als Rundungs- oder Rechenfehler bezeichnen kann, jedenfalls geht es um ein Modul für das Berechnen von Steueranteilen:

Berechnung des Nettowertes aus Bruttowert und Prozentsatz:
sngNetto = sngBrutto / ((100 + sngMwSt) / 100)

bei 19 % ergibt das bei 697,- Brutto ein Netto von 585,71
(eigentlich also 585,714285 Periode)


Nun ergibt sich eine Veränderung eines schon bestehenden Bruttowertes, wenn er aus Nettowert und Prozentsatz neu errechnet wird:
sngBrutto = (sngNetto * (100 + sngMwSt)) / 100

jetzt kommt 696,99 heraus
(also 696,9946)

Da ich mit kaufmännischer Rundung hier anscheinend nicht weiterkomme, frage ich, ob es vielleicht eine andere Methode gibt, das Problem mathematisch zu lösen. Oder eine Erhöhung der Nachkommastellung + Rundung?

Thx,

UselessUser

Rückmeldungen über Hilfestellungen sind sehr erwünscht:1. investiere ich Zeit, um dir zu antworten und2. möchte ich auch etwas dazulernen.
bei Antwort benachrichtigen
UselessUser Andreas42 „Hi! Nein, da ist mit Rechenlogik nichts zu machen. Diese Art der...“
Optionen

Danke für eure Beiträge! Ja, ich glaube nach einigen Rechenversuchen auch nicht mehr so an eine mathematische Lösung, das mit der Strichrechnung hat bei mir nicht hingehauen.
Ich werde es wohl doch "organisatorisch" machen. In einer Funktion wird überprüft, ob man auf den Nettowert in der Eingabemaske durch die erste Formel kommt, sofern schon ein Brutto eingegeben wurde:
sngNetto = sngBrutto / ((100 + sngMwSt) / 100)
Ist das der Fall, wird der alte Bruttowert beibehalten. Wenn nicht, wurde der Nettowert verändert und dann der Bruttowert nach der zweiten Formel neu errechnet.

Mal sehen, ob es klappt ...

MfG

UselessUser

Rückmeldungen über Hilfestellungen sind sehr erwünscht:1. investiere ich Zeit, um dir zu antworten und2. möchte ich auch etwas dazulernen.
bei Antwort benachrichtigen