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の配列のサンプル