インフリー技術情報発信ブログ

ERP(SAP)導入コンサルティング、ABAP開発、ホームページ制作、WEBシステム構築などを手掛ける、株式会社インフリーです。

数値の切捨て、切り上げ、四捨五入

今回は、数値の切捨て、切り上げ、四捨五入についてです。

・FLOOR    ・・・小数点以下切り捨て

例)
DATA: g_pack(3) TYPE p DECIMALS 2.
      
      g_pack = '123.45'.    
      g_pack = FLOOR( g_pack ).

      変数:g_pack には「123.00」が保持されることになります。

・CEIL    ・・・小数点以下切り上げ

例)
DATA: g_pack(3) TYPE p DECIMALS 2.
      
      g_pack = '123.45'.
      g_pack = CEIL( g_pack ).

      変数:g_pack には「124.00」が保持されることになります。

・ABS    ・・・絶対値

例)
DATA: g_pack(3) TYPE p DECIMALS 2.
      
      g_pack = '-123.45'.
      g_pack = ABS( g_pack ).

      変数:g_pack には「123.45」が保持されることになります。

上述のように小数点以下の切り捨て、切り上げは、
組込関数で簡単に記述できます。

では、四捨五入は?小数点以下第何位で丸めたい場合は?

・四捨五入
丸めたい少数点以下桁数の変数に代入することで、四捨五入されます。

例)
DATA: g_pack(3) TYPE p DECIMALS 2.
DATA: g_maru(3) TYPE p DECIMALS 1.
      
      g_pack = '-123.45'.
      g_maru = g_pack.

      変数:g_maru には「123.5」が保持されることになります。

・小数点以下を指定した丸め
汎用モジュール「ROUND」を使用します。
これ1つで、上述の組込関数を使用した方法等の代用できます。

いつでも、汎用モジュール「ROUND」を使えば、すべて対応できますが、
例えば、計算しつつ丸めたい場合は、組込関数のほうが便利です。

状況によって使い分けるのが、スマートだと思っています。

では以上!!

インフリー技術情報発信ブログ © 2013 Frontier Theme