二维码

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

Twilight发表于 2017-11-03 09:58yaoshanming 最后回复于 2017-12-01 11:20 [复制链接] 391 8

这个问题很容易被忽视,在这里写了一段代码分析一下三种情况:
  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
学习了。
回复

使用道具 举报

快速回帖

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

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