当 ABAP 程序中使用 ifthenelse 条件时,除法的问题会导致输出为 0 或 1


问题是,第二个参数是 0,这是一个整数,因此输出始终为一个整数,就好像 ifthenelse 从第二个参数中获取数据类型一样。因此,在您的案例中,如果答案小于 .5,它将转换为 0,如果大于 .5,它将转换为 1。您需要对第二个参数使用 cast 将其转换为十进制数据类型,如下所示

 ifthenelse(Query.Den= 0, cast(0, 'Decimal(16, 02)'), Query.Num / Query.Den)

更新于:05-Dec-2019

192 次浏览

开启你的职业生涯

通过完成课程获得认证

开始
广告