local currency to foreign currency.
背景:当condition record里面维护的amount太小,而且需要从本位币转换为USD的时候,那么除以汇率,就会更小。况且SAP保留的小数位只有两位。那么这几项的value就变成了0. 当order qty很大的时候,这个尾差就会被放大。
以上图为例,业务的逻辑是 (ZPRS+ZLB5+ZOV5+Z4PL)*1.15 = 单位的价格。最后再乘以汇率(1/ 6.84932); 也就是(5.64+0.01+0.01+0.10)*1.15 *0.146= 0.97(四舍五入两位小数);0.97*2000 =1940
但是SAP的逻辑是把每一项转换为USD后再汇总。所以最终的价值是1909. 相差了31美金。这不是个小数字。
怎么办?
把condition record里面的per 扩大。
这个3USD是怎么推到出来的?
1 CNY* 0.146 = 0.145999895USD;四舍五入保留两位小数 0.15 ; 0.15*2000/100 = 3 USD
这样算出来的结果为1927.40;
这样差异就小多了。还可以扩大到1000.
这样扩大到100和1000的值就差的不多了。