0

Rundungsfehler oder Formelfehler?

Hallo zusammen für das Erstellen von Preisen in einer Preisliste habe ich folgende Formel aus dem Forum übernommen

if Nettopreis then
if Nettopreis and “MwSt.” and not Bruttopreis then
Bruttopreis := Nettopreis * (1 + “MwSt.” / 100)
end;
if Nettopreis and Bruttopreis and not “MwSt.” then
“MwSt.” := 100 * (Bruttopreis - Nettopreis) / Nettopreis
end;
if Bruttopreis and “MwSt.” and not Nettopreis then
Nettopreis := Bruttopreis / (1 + “MwSt.” / 100)
end
end

Somit kann der Mitarbeiter entweder den Bruttopreis oder Nettopreis eingeben. Das funktioniert auch.

Wenn ich jetzt aber eine Rechnung erstelle, habe ich ständig einen Fehler um 1 Cent. (Und ich weiß nicht, ob es unter Umständen einen fehlerhaften Zusammenhang mit der obigen Formel gibt)

Beim Berechnungsfeld “Nettopreis” nutze ich folgende Formel=   Preisliste.Nettopreis * Menge

Bsp. Nettopreis 29,41 x 3 = 88,23

In meiner Ninox DB  Ergebnis = 88,24

Kann mir jemand sagen, wo mein Fehler liegt?

Des Weiteren muss man bei der obigen Formel Brutto, MwST, Netto  für einen geänderten Preis die Felder Brutto und Netto leeren. Kann man die Formel auch so erstellen, dass die alten Werte einfach überschrieben werden können?

Vielen Dank im Voraus

Andreas

2 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Andreas, wenn man in einem numerischen Feld das Zahlenformat auf 2 Nachkommastellen beschränkt, dann wird nur die Anzeige des jeweiligen Wertes entsprechend gerundet (z. B. 29,41), aber intern bleibt der genaue Wert (z. B. 29,413) erhalten und auch zu weiteren Berechnungen herangezogen, deren Ergebnis dann vom erwarteten abweichen kann.

     

    Ich würde die beteiligten Formeln deshalb um die Funktion round() ergänzen, so dass auch intern auf zwei Nachkommastellen gerundet wird: round(DEINEFORMEL, 2)

    • neon_scarf
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Vielen Dank, hat geklappt.