价格,数量,折扣,税金及其精度之间存在一般关系。
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.
重要的问题是我用最大值计算的舍入小计。错误。2个小数位数表示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
如果您想使用折扣或税款进行计算并希望重新计算价格,那么下一个说明可能对您很有趣。请注意,因为我不知道前端的任何情况,因此可能会有一个内部计算。A)总计=>税收/折扣=>总计B)税收/折扣=>总计=>税收/折扣
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
精度必须为2位数,并且您必须使用无分数数字的汇率。示例:总计:15,15税率:0.3%=>税0,04545 =>舍入0,0455税:0,0455 =>总计:15,17
B) Subtotal precision 2 fractional digits:
(5*10^-3)*y/10^2 => y/10^2 < 1 => y < 10^2
如果a是精度,则y必须小于a + 2。
请注意,如果您处理数量。该错误将成倍增加。因此,如果最大值为10 ^ 5,则必须具有7的精度。这仅是担心,如果要使用偏移量计算!
附加(9.10.2013 Magento版本1.7.0.2)Brutto <=> Netto和Taxes // America <=> old Europe Sets是整数(Cents),并且映射
f(x)= round(a * x)a> 1是不是双射的。用我的话说:不是每个价格都包含在内。存在价格排除。或有时包括2个价格。一口价不含税 或根据计算方式,您可以获得2种不同的结果
来自德国的真实示例:
您尝试输入包含价格。税:19,95您的税排除后可获得16,76(2位数字)。税收(19%)。如果您计算19%的税,您将获得(16,76 * 0.19)3,18。(请注意:19.95 * 019 / 1.19〜3.19)
因此,相差1美分。16,76 => 19.94 16.77 => 19.96
在美国-Netto土地没有价格19,95。
因此,请尽可能以原始价格计算。要包括价格,请使用输入的价格和税金(实数)。
贝宝(PayPal)拥有这张欺诈支票-现在我不确定-但贝宝(PayPal)只是添加了magento给它的号码。请参阅http://fabiankrueger.de/blog/magento-und-paypayl-rundungsfehler/
如果情况并非如此,并且PayPal重新计算Tax或Total,则此问题无法解决,否则价格-错误或正确-之前已在Magento中显示。在那儿解决。对我来说,它似乎有效。