数学関数

ABAP には一連の組込関数が含まれており、それらを数式として、または数式の一部として使用することができます。

[COMPUTE] n = func( m ).

括弧と引数 m の間の空白は必須です。引数 m を指定して関数 func を呼び出した結果は m に代入されます。

全数値データ型に対する関数

以下の組込関数では、引数として 3 つの数値データ型 (f、i、p) が使用されます。

全数値データ型に対する関数

関数

結果

Abs

引数の絶対値

Sign

引数のプレフィクス:                      1            x > 0

                                          SIGN( x ) =  0   if  x = 0

                                                                 -1            x < 0

Ceil

引数より小さくない整数値のうち最も小さなもの

Floor

引数より大きくない整数値のうち最も大きなもの

Trunc

引数の整数部分

FRAC

引数の少数部分

上記関数の引数が数値データ型である必要はありません。別のデータ型を選択した場合は数値データ型へと変換されます。ただしパフォーマンス上の理由により、できる限り正確なデータ型を使用する必要があります。関数自体は独自のデータ型を持ちません。関数により数値演算の数値精度が変化することはありません。

DATA n TYPE p DECIMALS 2.
DATA m TYPE p DECIMALS 2 VALUE '-5.55'.

n = abs( m ).   WRITE:   'ABS:  ', n.
n = sign( m ).  WRITE: / 'SIGN: ', n.
n = ceil( m ).  WRITE: / 'CEIL: ', n.
n = floor( m ).WRITE: / 'FLOOR:', n.
n = trunc( m ).WRITE: / 'TRUNC:', n.
n = frac( m ).  WRITE: / 'FRAC: ', n.

以下のように出力されます。

ABS:              5.55

SIGN:             1.00-

CEIL:             5.00-

FLOOR:            6.00-

TRUNC:            5.00-

FRAC:             0.55-

 

DATA: t1(10) TYPE c,
      t2(10) TYPE c VALUE '-100'.

t1 = ABS( t2 ).

WRITE t1. 

結果:

       100

 

2 つの変換が実行されます。まず、t2(c 型) の内容が p 型に変換されます。次に、その変換の結果を使用して関数 abs が処理されます。次に、c 型項目 t1 への代入時に、その関数の結果が元の c 型へと変換されます。

浮動小数点数関数

以下の組込関数では、引数として浮動小数点数 (f 型) が使用されます。

浮動小数点関数

関数

意味

acosasinatancossintan

三角関数

coshsinhtanh

双曲線関数

Exp

e を底とする指数関数 (e=2.7182818285)

Log

e を底とする自然対数

log10

10 を底とする対数

Sqrt

平方根

すべての関数について、通常の数学的制約が適用されます (たとえば、平方根は正数についてのみ可能)。違反があると実行時エラーが発生します。

上記関数の引数が浮動小数点数項目である必要はありません。別のデータ型を選択した場合には、f 型に変換されます。関数自体のデータ型は f です。数値演算の数値精度が変化する場合があります。

DATA: result TYPE f,
      pi(10) TYPE c VALUE '3.14159265'.

result = cos( pi ).

WRITE result.

出力は -1.00000000000000E+00 です。計算の実行前に、文字項目 pi は自動的に f 型項目へと変換されます。

 

posted @ 2019-03-08 10:23  Park_SAP  阅读(226)  评论(0编辑  收藏  举报