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

问题是您的第二个参数是0,它是一个整数,因此输出总是以整数形式出现,就像thenelse从第二个参数获取数据类型一样。因此,在您的情况下,如果答案小于.5,则转换为零;如果答案大于.5,则转换为1。您需要对第二个参数使用强制转换,以将其转换为十进制数据键入如下

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