|
SAP货币单位对应的小数据
http://blog.sina.com.cn/s/blog_7057e5240100m7wj.html
最近发现一个问题,显示的货币金额放大了100倍:
数据库对应字段为:
[img]http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://pwfdja.bay.livefilestore.com/y1myiH02ZMQ5R9DGJ7zsVACwr6fd8ujYGWEj8E1nOnN5vOlIiCjqMMmns1BORBCfxwzaedzWiO_OJt3BFsVcV7i0Rqn2nSD62OHpk9LtXkT3gZAWthDZSormlb_YnZ-WE_IRhx9ZZMtqUaI7YyzMW7Ikw/clip_image002[1]_thumb[1].jpg[/img]
它是对应于12位长,4位小数.如果存入的是6.5000且其参考货币为韩币KRW,需要输出应该是650, 可实际显示是65,000
这是是因为金额参考货币对应的小数位数, 在SAP系统中,默认都是两位小数, 如果对金额有小数位数的要求,则需要更改金额参考货币的小数位, 货币KRW对应小数位为0位,没有小数, 这样如果更改了货币小数位为4位的话,那么它显示时仍旧会按照没有小数位来处理, 显示金额会放大100倍, 导致数据错误. 注意,如果直接除以100的话, 输出值也不会保留两位小数,而且直接四舍五入到个位.
查看/更改货币对应小数位: OY04
所以在取出数据库中的金额后, 需要乘以货币转换因子以得实际金额. 这也是在输出金额时采用参考货币的原因.
相关资料:
Package: SFIB: Financials: Components in Basis跟货币转换相关
Table: TCURX: Decimal Places in Currencies
TCURC: Currency Codes
FM: CURRENCY_CONVERTING_FACTOR 可取得转换因子,用在与外部系统交换数据使用. |
|
|