esiste una relazione generale tra i prezzi, la quantità, lo sconto, le tasse e le loro precisazioni.
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.
Il problema importante è il totale parziale arrotondato che sto calcolando con il max. Errore. 2 cifre frazionarie significano 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
Se vuoi calcolare con sconti o tasse e vuoi ricalcolare il prezzo, la prossima spiegazione può essere interessante per te. Si prega di essere consapevoli dal momento che non conosco alcun caso nel front-end, è possibile che ci sia un calcolo stagista. A) Totale => Imposta / Sconto => Totale B) Imposta / Sconto => Totale => Imposta / Sconto
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
Con una precisione di 2 cifre, è necessario disporre di una velocità senza CIFRE FRAZIONALI. Esempio: totale: 15,15 aliquota fiscale: 0,3% => imposta 0,04545 => arrotondata 0,0455 imposta: 0,0455 => totale: 15,17
B) Subtotal precision 2 fractional digits:
(5*10^-3)*y/10^2 => y/10^2 < 1 => y < 10^2
se a è la precisione, allora deve essere y inferiore a + 2.
Si prega di notare se si maneggiano quantità. L'errore verrà moltiplicato. Quindi, se hai un massimo di 10 ^ 5, devi avere una precisione di 7. Questo è preoccupante solo se stai calcolando con offset!
AGGIUNTA (9.10.2013 Magento versione 1.7.0.2) Brutto <=> Netto e tasse // America <=> vecchi set Europa sono numeri interi (centesimi) e la mappatura
f (x) = round (a * x) a> 1 è non biiettivo. Nelle mie parole: non per ogni prezzo incl. esiste un prezzo escl. oppure A volte ci sono 2 prezzi incl. per un prezzo escl. oppure Puoi ottenere 2 risultati diversi a seconda di come calcoli
Esempio reale dalla Germania:
Si tenta di inserire un prezzo incl. tasse: 19,95 Ottieni 16,76 (2 cifre) come prezzi escl. le tasse (19%). Se calcoli le tasse del 19% che ottieni (16,76 * 0,19) 3,18. (Attenzione: 19,95 * 019 / 1,19 ~ 3,19)
Quindi c'è una differenza di 1 centesimo. 16,76 => 19,94 16,77 => 19,96
Non esiste un prezzo di 19,95 in america - terra di netto.
Quindi calcola con i prezzi originali per quanto possibile. Per includere i prezzi utilizzare il prezzo inserito e le tasse (numero non funzionante).
PayPal ha questo controllo delle frodi - ora non ne sono sicuro - ma PayPal aggiunge semplicemente il numero fornito da Magento. vedi http://fabiankrueger.de/blog/magento-und-paypayl-rundungsfehler/
Se questo non è vero e PayPal ricalcola le tasse o il totale, questo problema non è risolvibile, altrimenti i prezzi - sbagliati o giusti - sono mostrati prima in Magento . Risolvilo lì. Per me sembra funzionare.