【基础】ABAP不同变量类型之间数值大小比较

这个问题很容易被忽视,在这里写了一段代码分析一下三种情况:
DATA:lv_num1 TYPE string.
DATA:lv_num2 TYPE string.
DATA:lv_num3 TYPE i.
DATA:lv_num4 TYPE i.

lv_num1 = '1000'.
lv_num2 = '50'.

lv_num3 = 20.
lv_num4 = 60.

*-->字符串之间大小比较
WRITE:/ '字符串之间大小比较'.
IF lv_num1 > lv_num2.
  WRITE:/ lv_num1 ,'>', lv_num2.
ELSE.
  WRITE:/ lv_num1 ,'<=', lv_num2.
ENDIF.

*-->字符串与数字大小比较
WRITE:/ '字符串与数字大小比较'.
IF lv_num1 > lv_num4.
  WRITE:/ lv_num1 ,'>', lv_num4.
ELSE.
  WRITE:/ lv_num1 ,'<=', lv_num4.
ENDIF.

*-->数字之间大小比较
WRITE:/ '数字之间大小比较'.
IF lv_num3 > lv_num4.
  WRITE:/ lv_num3 ,'>', lv_num4.
ELSE.
  WRITE:/ lv_num3 ,'<=', lv_num4.
ENDIF.

运行结果:


分析:

可见字符串之间的比较和我们想象中不一样,因为他是每个字符之间的比较,第一位和第一位比,如第一位相等,第二位和第二位比较,以此类推。
注意i类型长度是8,所以打印结果会有空格;

字符串和数字类型直接比较也是ok的,但是项目中建议同学们还是把类型都转换为数字类型再比较。


思考:

如果string类型换成CHAR类型,大小比较的规律是不是也是如此呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP剑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值