二维码

[基础语法] ABAP不同变量类型之间数值大小比较

Twilight发表于 2017-11-03 09:58小王我 最后回复于 2019-07-22 18:08 [复制链接] 2069 11

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

  5. lv_num1 = '1000'.
  6. lv_num2 = '50'.

  7. lv_num3 = 20.
  8. lv_num4 = 60.

  9. *-->字符串之间大小比较
  10. WRITE:/ '字符串之间大小比较'.
  11. IF lv_num1 > lv_num2.
  12.   WRITE:/ lv_num1 ,'>', lv_num2.
  13. ELSE.
  14.   WRITE:/ lv_num1 ,'<=', lv_num2.
  15. ENDIF.

  16. *-->字符串与数字大小比较
  17. WRITE:/ '字符串与数字大小比较'.
  18. IF lv_num1 > lv_num4.
  19.   WRITE:/ lv_num1 ,'>', lv_num4.
  20. ELSE.
  21.   WRITE:/ lv_num1 ,'<=', lv_num4.
  22. ENDIF.

  23. *-->数字之间大小比较
  24. WRITE:/ '数字之间大小比较'.
  25. IF lv_num3 > lv_num4.
  26.   WRITE:/ lv_num3 ,'>', lv_num4.
  27. ELSE.
  28.   WRITE:/ lv_num3 ,'<=', lv_num4.
  29. ENDIF.
复制代码
执行结果:
字符串大小比较.jpg
可见字符串之间的比较和我们想象中不一样,因为他是每个字符之间的比较,第一位和第一位比,如第一位相等,第二位和第二位比较,以此类推。
注意i类型长度是8,所以打印结果会有空格;字符串和数字类型直接比较也是ok的,但是项目中建议同学们还是把类型都转换为数字类型再比较。
思考:如果string类型换成CHAR类型,大小比较的规律是不是也是如此呢?
游客,如果您要查看本帖隐藏内容请回复

回复

使用道具 举报

zhongguomao
学习了。
回复

使用道具 举报

Twilight

秒回呀
回复 支持 反对

使用道具 举报

zhongguomao

那是,我很关注你的好不好。
回复 支持 反对

使用道具 举报

teyun2222
感謝分享~~~
回复

使用道具 举报

xiao
谢谢分享!
回复

使用道具 举报

ratg0626
谢谢您的分享
回复 支持 反对

使用道具 举报

GD小鬼
very good
回复

使用道具 举报

yaoshanming
学习了。
回复

使用道具 举报

camio
学习了,感谢分享
回复 支持 反对

使用道具 举报

SAP-CS-BI
感觉数字和字符比较的代码没区别啊
回复 支持 反对

使用道具 举报

小王我
学习 了

回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表