? ABAP不同变量类型之间数值大小比较 - SAP顾问圈 亚博体育娱乐 ,亚博体育app怎么样,亚博2018网上投注
二维码

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

Twilight发表于 2017-11-03 09:58小王我 最后回复于 2019-07-22 18:08 [复制链接] 1733 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.
复制代码
执行结果:

可见字符串之间的比较和我们想象中不一样,因为他是每个字符之间的比较,第一位和第一位比,如第一位相等,第二位和第二位比较,以此类推。
注意i类型长度是8,所以打印结果会有空格;字符串和数字类型直接比较也是ok的,但是项目中建议同学们还是把类型都转换为数字类型再比较。
思考:如果string类型换成CHAR类型,大小比较的规律是不是也是如此呢?
游客,如果您要查看本帖隐藏内容请回复

zhongguomao
发表于 2017-11-3 10:00:16
学习了。
Twilight
发表于 2017-11-3 10:01:36

秒回呀
zhongguomao
发表于 2017-11-3 10:02:47

那是,我很关注你的好不好。
teyun2222
发表于 2017-11-3 13:27:25
感谢分享~~~
xiao
发表于 2017-11-6 17:40:30
谢谢分享!
ratg0626
发表于 2017-11-14 10:05:03
谢谢您的分享
GD小鬼
发表于 2017-11-23 21:00:37
very good
yaoshanming
发表于 2017-12-1 11:20:54
学习了。
camio
发表于 2018-3-13 12:07:13 来自手机
学习了,感谢分享
SAP-CS-BI
发表于 2018-4-8 09:49:20
感觉数字和字符比较的代码没区别啊
小王我
发表于 2019-7-22 18:08:13
学习 了

快速回帖

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

快速回复 返回顶部 亚博体育娱乐