@Tomcraft
Jetzt habe ich's verstanden, das sollte in der Tat genauer sein, (*EDIT* würde ich auf den ersten Blick denken...*END_EDIT*).
Ich fasse es mal in die Worte die ich von dir erhofft hatte:
Der Netto-Preis aus der DB wird mit dem alten Steuersatz 19% erst in den Brutto-Preis auf 2 Stellen gerundet umgerechnet
- also der Preis den der Shop auch mit dem alten Satz als Brutto-Preis anzeigen dürfte -
und dann mittels des neuen Steuersatzes 16% zurück auf den Netto-Preis gerechnet.2 Stellen natürlich weil der Brutto-Preis immer auf 2 Stellen gerundet ist (wir haben nun mal keine Zehntel-Cent).
PRICE_PRECISION hat hier in der Tat nichts zu suchen wenn man so rechnet.
Ein Beispiel mit eurer Rechnung:
Netto: 2,3330
Brutto: 2,3330 * 1,19 = 2,77627 => gerundet 2,78
Neuer Netto: 2,78 / 1,16 = 2,396551724137931 => in der DB wegen DECIMAL(15,4) 2,3965
Neuer Brutto: 2,3965 * 1,16 = 2,77994 => gerundet 2,78Sieht also gut aus.
Ein Beispiel mit AGIs Berechnung:
Netto: 2,3330
Brutto: 2,3330 * 1,19 = 2,77627 => gerundet 2,78
Neuer Netto: 2,3330 * (1,19/1,16) = 2,393336206896551 => in der DB wegen DECIMAL(15,4) 2,3933
Neuer Brutto: 2,3933 * 1,16 = 2,776228 => gerundet 2,78Ich könnte da jetzt nicht sagen was bei einer Vielzahl an unterschiedlichen Preisen am Ende genauer ist.
Wie habt Ihr das beurteilt ?
Eigtl. off topic aber gerade Nebenthema:
In dem Zusammenhang frage ich mich wofür überhaupt PRICE_PRECISION genau da ist.
Soweit ich das bei einem Code-Scan sehe wird das fast ausschließlich für die Anzeige der Preise im Admin-Bereich verwendet - die DB hat immer 4 Stellen mit DECIMAL(15,4), was ja bedeutet, daß bei Speichern von mehr Stellen auf 4 Stellen gerundet wird.
Ausnahme vom Admin-Bereich:
/includes/extra/default/listing_sql/99_advanced_search_result.phpwas ich an der Stelle gar nicht verstehe. Für den Fall, daß ein Kunde bei der erweiterten Suche im Shop zig Stellen hinter dem Komma eingibt bei "Preis ab" oder "Preis bis" ?
Sollte PRICE_PRECISION am Ende nicht mit den Stellen der Preisfelder in der DB korrespondieren und somit gar nicht einstellbar sein ?
Was habe ich davon wenn ich PRICE_PRECISION auf z.B. 6 stelle wenn die DB ohnehin immer auf 4 Stellen rundet ?
Will sagen, stelle ich PRICE_PRECISION auf 6 hat das genau Null Auswirkungen,
stelle ich es auf 2 (also weniger als die DB-Felder) habe ich auch nichts davon die Preise nun mit lediglich 2 Stellen hinter dem Komma angezeigt zu bekommen. (Bei Brutto-Admin bekommt man ja sogar immer die bei der Währung eingestellten Nachkommastellen angezeigt).
Irre ich da ?
Außerdem:
Die Beschreibung
"Umrechnungsgenauigkeit (Hat keinen Einfluss auf die Anzeige im Shop, dort werden immer 2 Nachkommastellen angezeigt.)"
halte ich für irrig.
1. hat das nichts mit Umrechnungsgenauigkeit zu tun (und wenn ja welche, also von was nach was ?)
und 2. meint "im Shop" das Frontend, was dort dann auch stehen sollte.
Gruß,
noRiddle