在ABAP中如果要換算小數點有分兩種

第一種四捨五入,以下N2會帶出12.46

DATA: N1 type p DECIMALS 4.
DATA: N2 type p DECIMALS 2.

N1 = '12.4567'.
N2 = N1.

WRITE: '四捨五入', N2.

第二種無條件捨去並保留到小數點第二位,以下會帶出12.45

CALL FUNCTION 'ROUND'
  EXPORTING
    decimals      = 2
    input         = N1
    sign          = '-'
  IMPORTING
    output        = N2
  EXCEPTIONS
    input_invalid = 1
    overflow      = 2
    type_invalid  = 3
    OTHERS        = 4.

WRITE: / '無條件捨去', N2.

function中sign如果是『-』 代表無條件捨去

                      如果是『+』代表無條件進位

沒帶入那個參數,那就按照原本的格式四捨五入

 

如果實在不想要小數點怎麼辦那就設定一個DECIMALS 0的型態吧

這樣當別的丟給它,就會帶出沒小數點並且四捨五入後的整數了

DATA: N1 type p DECIMALS 0.

arrow
arrow
    全站熱搜

    ROACH 發表在 痞客邦 留言(0) 人氣()