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
-
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)
-
Vielen Dank, hat geklappt.
Content aside
- vor 4 JahrenZuletzt aktiv
- 2Antworten
- 359Ansichten