Home実験室 − No.0036


        No.0036(SQL)
        切り捨て、切り上げ、四捨五入(FLOOR、CEIL、ROUND、TRUNC)

■環境
  □OS: Windows XP Professional SP3
  □Oracle: Oracle Database 11g R2 (Standard)
  □OSログインユーザ: ORA_DBAグループ
  □Oracleユーザ: dicdic(実験用ユーザー)

■実験
  0. 実験ユーザー「dicdic」でコネクトする。

SQL> conn dicdic/Oracle11g 接続されました。 SQL>



  1. 【直近の整数まで切り捨てる】FLOOR関数を使うと、引数として与えた数字を、引数より小さい直近の整数にして戻す。

SQL> SELECT FLOOR(999.4) 内輪の直近の整数 FROM DUAL; 内輪の直近の整数 ---------------- 999 SQL>



  2. FLOOR関数に整数を投入しても、そのまま返ってくる。これ当然。

SQL> SELECT FLOOR(999) 内輪の直近の整数 FROM DUAL; 内輪の直近の整数 ---------------- 999 SQL>



  3. FLOOR関数に負の数を投入すると、絶対値が大きくなるが、関数の定義どおり、引数より小さい直近の整数にして戻す。

SQL> SELECT FLOOR(-999.5) 内輪の直近の整数 FROM DUAL; 内輪の直近の整数 ---------------- -1000 SQL>



  4. 【直近の整数まで切り上げる】CEIL関数を使うと、引数として与えた数字を、それより大きい直近の整数にして戻す。ちなみにceilは「天井」って意味ね。

SQL> SELECT CEIL(999.4) FROM DUAL; CEIL(999.4) ----------- 1000 SQL>



  5. CEIL関数に整数を投入しても、そのまま返ってくる。これ当然。

SQL> SELECT CEIL(999) 内輪の直近の整数 FROM DUAL; 内輪の直近の整数 ---------------- 999 SQL>



  6. CEIL関数に負の数を投入すると、絶対値が小さくなるが、関数の定義どおり、引数より大きい直近の整数にして戻す。

SQL> SELECT CEIL(-999.4) 内輪の直近の整数 FROM DUAL; 内輪の直近の整数 ---------------- -999 SQL>



  7. 【四捨五入】ROUND関数で四捨五入ができる。Excellにも似たような使い方の関数がある。
     第2引数が正のときは小数点より右側のn番目の位置で四捨五入、負のときには小数点より
     左側のn番目の位置で四捨五入。

SQL> SELECT ROUND(3456.789,2) "3456.789を小数第二位で四捨五入",ROUND(3456.789,-2) "3456.789を十の位で四捨五入" FROM DUAL; 3456.789を小数第二位で四捨五入 3456.789を十の位で四捨五入 ------------------------------ -------------------------- 3456.79 3500 SQL>



  8. 【切捨て】切捨てはTRUNC関数。
     ただし、切り捨てる位置が整数部分の場合と小数部分の場合で違っているので気をつける必要があります。
     つまり、第二引数が正の数か負の数かで切り捨てられ方が違うので注意!

SQL> SELECT TRUNC(3456.789,2) "3456.789を小数第二位より下切捨",TRUNC(3456.789,-2) "3456.789を十の位以下切捨" FROM DUAL; 3456.789を小数第二位より下切捨 3456.789を十の位以下切捨 ------------------------------ ------------------------ 3456.78 3400 SQL>





    【PR】    Oracle実験室監修  『Oracleアーキテクチャ鳥瞰図』 PDF  (Oracleのアーキテクチャを一目で俯瞰できるイラスト)  


Home実験室 − No.0036

© 2011-2011   Amateur Laboratory of ORACLE
inserted by FC2 system