Oracle 計算/四捨五入/切り捨て/切り上げ

Oracleの計算/四捨五入/切り捨て/切り上げのサンプルです。

目次

サンプル 数値の計算
  四捨五入
  切り捨て
  切り上げ

数値の計算

数値の計算のサンプルです。

-- 足し算
select 6 + 3 from dual; -- 9

-- 引き算
select 6 - 3 from dual; -- 3

-- 掛け算
select 6 * 3 from dual; -- 18

-- 割り算
select 6 / 3 from dual; -- 2

-- 割り算の余り
select MOD(5,3) from dual; -- 2

-- べき乗
select POWER(2,4) from dual; -- 16

-- 絶対値
select ABS(-5) from dual; -- 5

14行目のMODは、割り算の余りを求めます。
17行目のPOWERは、べき乗です。1 つ目の数値を 2 つ目の数値でべき乗します(2*2*2*2=16)。

四捨五入

ROUND(対象の数値)
ROUND(対象の数値,指定する桁)

四捨五入は、ROUND関数を使用します。

-- 四捨五入
select ROUND(2.26) from dual; -- 2
select ROUND(2.82) from dual; -- 3
select ROUND(-2.82) from dual; -- -3

select ROUND(12.2627,1) from dual; -- 12.3
select ROUND(12.2627,2) from dual; -- 12.26
select ROUND(12.2627,3) from dual; -- 12.263

select ROUND(226,-1) from dual; -- 230
select ROUND(226,-2) from dual; -- 200
select ROUND(-226,-1) from dual; -- -230
select ROUND(-226,-2) from dual; -- -200

2~4行目は、小数点第一位を四捨五入します。整数になります。
6~8行目は、ROUND関数の2つめの引数があります。指定した数値+1の位を四捨五入します。
6行目は、小数第二位を四捨五入します。
10行目は、2つめの引数にマイナス値を指定し1の位を四捨五入しています。

https://docs.oracle.com/cd/E16338_01/server.112/b56299/functions155.htm

切り捨て

TRUNC(対象の数値)
TRUNC(対象の数値,指定する桁)

切り捨ては、TRUNC関数を使用します。

--切り捨て
select TRUNC(2.26) from dual; -- 2
select TRUNC(2.82) from dual; -- 2
select TRUNC(-2.82) from dual; -- -2

select TRUNC(12.2627,1) from dual; -- 12.2
select TRUNC(12.2627,2) from dual; -- 12.26
select TRUNC(12.2627,3) from dual; -- 12.262

select TRUNC(12.2627,-1) from dual; -- 10

2~4行目は、小数点第一位を切り捨てします。整数になります。
4行目の負の値は、0への丸めです。
6行目は、小数第2位を切り捨てます。
7行目は、小数第3位を切り捨てます。
8行目は、小数第4位を切り捨てます。
10行目は、1の位を切り捨てます。

切り上げ

CEIL(対象の数値)

CEIL関数の引数は1つのみです。小数点第一位を切り上げます。

-- 切り上げ
select CEIL(2.26) from dual; -- 3
select CEIL(2.82) from dual; -- 3
select CEIL(-2.82) from dual; -- -2

select CEIL(12.2627*10)/10 from dual; -- 12.3
select CEIL(12.2627*100)/100 from dual; -- 12.27
select CEIL(12.2627*1000)/1000 from dual; -- 12.263

select CEIL(12.2627/10)*10 from dual; -- 20

2~4行目は、小数点第一位を切り上げします。整数になります。
4行目は、-2になります。
6行目は、小数第2位を切り上げます。
7行目は、小数第3位を切り上げます。
8行目は、小数第4位を切り上げます。
10行目は、1の位を切り上げます。

WikiPediaの端数処理のリンクです。
https://ja.wikipedia.org/wiki/%E7%AB%AF%E6%95%B0%E5%87%A6%E7%90%86

関連の記事

Oracle PL/SQLのif文のサンプル
Oracle PL/SQLのループ文のサンプル(LOOP,WHILE)
Oracle PL/SQLの配列のサンプル

△上に戻る