本文共 752 字,大约阅读时间需要 2 分钟。
这个问题很容易被忽视,在这里写了一段代码分析一下三种情况: |
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类型,大小比较的规律是不是也是如此呢?