ABAP数据类型转换和不同数据类型比较

DATA:lv_str  TYPE string,
     lv_str2 TYPE string,
     lv_char TYPE char10,
     lv_i    TYPE i VALUE 1,
     lv_f    TYPE p DECIMALS 1 VALUE '1.1'.

lv_str = '1.11'.
lv_char = '1.11'.

"TRUE
IF lv_str = 1.

  WRITE: 111.

ENDIF.

"string 和 char 一样
" string和char转为int,会进行四舍五入 Decimal places are rounded commercially
"TRUE
IF lv_char = 1.

  WRITE: 111.

ENDIF.


lv_str2 = '1.66'.
"FALSE
IF lv_str2 = 1.

  WRITE: 111.

ENDIF.

"TRUE
IF lv_str = lv_i.
  WRITE:222.
ENDIF.

"如果lv_f = 1.10 type p decimal 2 false
"    lv_f = 1.1 type p decimal 1  true
"    lv_f = 1.1 type p decimal 2  false

"TRUE
IF lv_str = lv_f.
  WRITE:333.
ENDIF.

"解决办法
"1/使用算术表达式代替逻辑表达式
"FALSE
IF + lv_str = 1.
  WRITE: 444.
ENDIF.

"2/ 强转
"FALSE
IF lv_str = CONV decfloat16( 1 ).
  WRITE: 555.
ENDIF.
               | decfloat16, decfloat34 | f | p | int8 | i, s, b |
.--------------|------------------------|---|---|------|---------|
| string, c, n | decfloat34             | f | p | int8 | i       |
posted @   shizuru  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示