zoukankan      html  css  js  c++  java
  • How condition value calculated in sap

    local currency to foreign currency.

    背景:当condition record里面维护的amount太小,而且需要从本位币转换为USD的时候,那么除以汇率,就会更小。况且SAP保留的小数位只有两位。那么这几项的value就变成了0. 当order qty很大的时候,这个尾差就会被放大。

    clip_image002

    以上图为例,业务的逻辑是 (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 扩大。

    image

    这个3USD是怎么推到出来的?

    1 CNY* 0.146 = 0.145999895USD;四舍五入保留两位小数 0.15 ; 0.15*2000/100 = 3 USD

    这样算出来的结果为1927.40;

    这样差异就小多了。还可以扩大到1000.

    image

    这样扩大到100和1000的值就差的不多了。

  • 相关阅读:
    POJ
    POJ
    BZOJ
    HDU
    codeforces
    BZOJ
    SPOJ
    SPOJ
    SPOJ
    HDU
  • 原文地址:https://www.cnblogs.com/chrisrockdl/p/14247080.html
Copyright © 2011-2022 走看看