Database

[Oracle]端数処理、丸めの方法

スポンサーリンク

ORACLEで数値の端数処理、数値丸めをする

数値を四捨五入する場合は、ROUND関数
数値を切り捨てる場合は、TRUNC関数
各関数の第2引数の値で、小数部、または、整数部を丸めることができる。

引数の最小値を返すCEIL関数、最大の整数を返すFLOOR関数でも求めることができる。
数値が正数の場合は、CEIL関数、負数の場合は、FLOOR関数を用いる。

四捨五入 ROUND関数

SELECT ROUND(0.4) FROM DUAL       -- 0
SELECT ROUND(0.5) FROM DUAL       -- 1
SELECT ROUND(0.44, 1) FROM DUAL  -- 0.4
SELECT ROUND(0.45, 1) FROM DUAL  -- 0.5
SELECT ROUND(4.0, -1) FROM DUAL  -- 0
SELECT ROUND(5.0, -1) FROM DUAL  -- 10

切り捨て TRUNC関数

SELECT TRUNC(0.1) FROM DUAL         -- 0
SELECT TRUNC(0.12, 1) FROM DUAL    -- 0.1
SELECT TRUNC(1.0, -1) FROM DUAL     -- 0
SELECT TRUNC(12.0, -1) FROM DUAL   -- 10

切り上げ

数値を切り上げる場合は、標準関数が存在しないので、
切り上げる桁数に「+9」をして切り捨て、または、切り上げる桁数に「+4」をして四捨五入をする。

SELECT TRUNC(0.12 + 0.09, 1) FROM DUAL -- 0.2
SELECT TRUNC(12.0 + 9, -1) FROM DUAL   -- 20
SELECT ROUND(0.12 + 0.04, 1) FROM DUAL -- 0.2
SELECT ROUND(12.0 + 4, -1) FROM DUAL   -- 20
SELECT CEIL(0.1) FROM DUAL             -- 1
SELECT CEIL(-0.1) FROM DUAL            -- 0
SELECT FLOOR(0.1) FROM DUAL            -- 0
SELECT FLOOR(-0.1) FROM DUAL           -- -1

タイトルとURLをコピーしました