il existe une relation générale entre les prix, la quantité, la remise, la taxe et leurs précisions.
Assume:
x is the price
y is the percentage
s is the rounded sub-total
2 Directions
A) incl. Tax => excl. Tax => incl. Tax
B) excl. => incl. => excl.
La question importante est le sous-total arrondi que je calcule avec le max. Erreur. 2 chiffres fractionnaires signifie 5 * 10 ^ -3
A) x * 10 ^ 2 / (y + 10 ^ 2) // s * (y + 10 ^ 2) / 10 ^ 2
B) x * (y + 10 ^ 2) / 10 ^ 2 // s * 10 ^ 2 / (10 ^ 2 + y)
A)
Subtotal precision 2 fractional digits:
5*10^-3*(y+10^2)/10^2 => (y+10^2)/10^2<1 => no y
3 fractional digits:
5*10^-4*(y+10^2)/10^2 => (y+10^2)/10^2<10 => y<900
4 fractional digits:
5*10^-5*(y+10^2)/10^2 => (y+10^2)/10^2<10^2 => y<90900
(must be a very bad country)
......
B)
Subtotal precision 2 fractional digits:
(5*10^-3)*10^2/(10^2+y) => 10^2/(10^2+y)<1 => every y
Si vous souhaitez calculer avec des remises ou des taxes et que vous souhaitez recalculer le prix, l'explication suivante peut être intéressante pour vous. S'il vous plaît soyez conscient que je ne connais aucun cas dans le front-end, il est possible qu'il y ait un calcul interne. A) Total => Taxe / Remise => Total B) Taxe / Remise => Total => Taxe / Remise
A) x * y / 10 ^ 2 // s * 10 ^ 2 / y
B) x * 10 ^ 2 / y // s * y / 10 ^ 2
A) Subtotal precision 2 fractional digits:
(5*10^-3)*10^2/y => 10^2/y < 1 => y>10^2
Subtotal precision 3 fractional digits:
(5*10^-4)*10^2/y => 10^2/y < 10 => y>10
Subtotal precision 4 fractional digits:
... 10^2/y < 10^2 => y>1
Avec une précision de 2 chiffres, vous devez avoir un taux SANS CHIFFRES FRACTIONNELS. Exemple: Total: 15,15 taux d'imposition: 0,3% => taxe 0,04545 => arrondi 0,0455 taxe: 0,0455 => total: 15,17
B) Subtotal precision 2 fractional digits:
(5*10^-3)*y/10^2 => y/10^2 < 1 => y < 10^2
si a est la précision, alors doit être y inférieur à a + 2.
Veuillez noter si vous gérez des quantités. L'erreur sera multipliée. Donc, si vous avez un maximum de 10 ^ 5, vous devez avoir une précision de 7. Ce n'est inquiétant que si vous calculez avec offset!
ADDITION (9.10.2013 Magento Version 1.7.0.2) Brutto <=> Netto and Taxes // America <=> old Europe Les ensembles sont des entiers (Cents) et le mappage
f (x) = round (a * x) a> 1 est pas bijectif. Dans mes mots: Pas pour tous les prix incl. existe un prix excl. ou Il y a parfois 2 prix incl. pour un prix excl. ou Vous pouvez obtenir 2 résultats différents selon la façon dont vous calculez
Exemple concret de l'Allemagne:
Vous essayez d'entrer un prix incl. taxes: 19,95 Vous obtenez 16,76 (2 chiffres) comme vos prix excl. les taxes (19%). Si vous calculez les taxes de 19%, vous obtenez (16,76 * 0,19) 3,18. (Soyez conscient: 19,95 * 019 / 1,19 ~ 3,19)
Il y a donc une différence de 1 cent. 16,76 => 19,94 16,77 => 19,96
Il n'y a pas de prix 19,95 en Amérique - Terre de Netto.
Calculez donc avec les prix d'origine autant que possible. Pour inclure les prix, utilisez le prix entré et les taxes (numéro cassé).
PayPal a ce contrôle de fraude - maintenant je ne suis pas sûr - mais PayPal ajoute juste le numéro que magento lui donne. voir http://fabiankrueger.de/blog/magento-und-paypayl-rundungsfehler/
Si ce n'est pas le cas et que PayPal recalcule la taxe ou le total, ce problème n'est pas résolu, sinon les prix - faux ou corrects - sont affichés auparavant dans Magento . Résolvez-le là-bas. Pour moi, cela semble fonctionner.