数値処理
このトピックでは、ABAP言語で数値処理の方法を取り上げて説明します。
通常の算術処理
ABAP言語が用意した演算子を利用して、通常の算術処理を行うことができます。
算術処理 | 使用される演算子 |
---|---|
加算 | + |
減算 | - |
乗算 | * |
除算 | / |
整数除算 | DIV |
整数除算の余り | MOD |
丸め処理
数字を四捨五入や切り上げ、切り捨てをして整数にまとめるには、関数や汎用モジュールの使用、言語固有の丸め処理を利用するなど、幾つかの方法があります。
関数の使用
以下のような関数を使用することができます。
- FLOOR 小数点以下切り捨て
- CEIL 小数点以下切り上げ
例:
DATA: l_value(3) TYPE p DECIMALS 2, l_result1(3) TYPE p DECIMALS 2. l_value= '923.36'. l_result = FLOOR( l_value ). "変数に「923.00」が保持されることになる l_result = CEIL( l_value ). "変数に「923.01」が保持されることになる
汎用モジュールの使用
汎用モジュールROUNDを使用すれば、小数点以下を指定した桁数で切捨て、切上げ、四捨五入することができます。
例:
DATA : l_value TYPE P DECIMALS 2. "TYPE Pを利用 DATA : l_result TYPE P DECIMALS 2. "TYPE Pを利用 l_value = '923.36'. *整数10の位で切り捨て CALL FUNCTION 'ROUND' EXPORTING DECIMALS = -2 "丸めが実行される小数点以下桁数、マイナス可 INPUT = l_value " 丸められる値 SIGN = '-' "+:切り上げ、-:切り捨て、その他:四捨五入 IMPORTING OUTPUT = l_result "丸め後の値 EXCEPTIONS INPUT_INVALID = 1 OVERFLOW = 2 TYPE_INVALID = 3 OTHERS = 4 . WRITE : / '整数10の位で切り捨て:' , l_value , '->' , l_result .
言語固有の丸め処理
ABAP言語は、値を変数に代入する際、変数が桁数不足の場合、自動的に四捨五入処理を行います。
例:
DATA: l_value(3) TYPE p DECIMALS 2, l_result1(3) TYPE p DECIMALS 0. l_value= '923.56'. l_result = l_value. "変数に「923.01」が保持されることになる
その他
数値の整数部取得
数値の整数部のみを取得するには、関数TRUNCを使用することができます。
数値の小数部取得
数値の小数部のみを取得するには、関数FRACを使用することができます。