SQL Server - 少数の 四捨五入・切り捨て・切り上げ

四捨五入 は ROUND、切り捨て は ROUND または FLOOR、切り上げ は CEILING 関数 を使用します。

四捨五入・切り捨て・切り上げ

四捨五入 = ROUND(丸めたい値, 丸め位置)
切り捨て = ROUND(丸めたい値, 丸め位置, 1)
切り捨て = FLOOR(丸めたい値)
切り上げ = CEILING(丸めたい値)

四捨五入

四捨五入 するには ROUND 関数を使用します。第一引数に 丸めたい値、第二引数に 丸め位置 を指定します。丸め位置 に マイナス値 を指定すると、整数部の丸めも可能です。
四捨五入の結果 = ROUND(丸めたい値, 丸め位置)

サンプルSQL

--四捨五入(少数)
SELECT ROUND(1234.555, 0) --結果 = 1235.000
      ,ROUND(1234.555, 1) --結果 = 1234.600
      ,ROUND(1234.555, 2) --結果 = 1234.560

--四捨五入(整数)
SELECT ROUND(123456789, -1) --結果 = 123456790
      ,ROUND(123456789, -2) --結果 = 123456800
      ,ROUND(123456789, -3) --結果 = 123457000

銀行家の丸め ではなく、 四捨五入 が行われます。

SELECT ROUND(1.5, 0) --結果 = 2.0
      ,ROUND(2.5, 0) --結果 = 3.0

切り捨て

切り捨て するには ROUND 関数を使用します。第一引数に 丸めたい値、第二引数に 丸め位置、第三引数に 1(ゼロ以外の値) を指定します。 FLOOR 関数でも切り捨てはできますが、桁数の指定ができません。
切り捨て結果 = ROUND(丸めたい値, 丸め位置, 1)
切り捨て結果 = FLOOR(丸めたい値)

ROUND関数 と FLOOR関数 の違い

マイナス値を切り捨てたとき ROUND関数 はゼロに近づき、FLOOR関数 はゼロから離れます。

--ROUND関数 はゼロに近づく
SELECT ROUND(-0.9, 0, 1) --結果 =  0.0
      ,ROUND(-1.9, 0, 1) --結果 = -1.0

--FLOOR関数 はゼロから離れる
SELECT FLOOR(-0.9) --結果 = -1
      ,FLOOR(-1.9) --結果 = -2

サンプルSQL (ROUND関数)

--切り捨て(少数)
SELECT ROUND(1234.555, 0, 1) --結果 = 1234.000
      ,ROUND(1234.555, 1, 1) --結果 = 1234.500
      ,ROUND(1234.555, 2, 1) --結果 = 1234.550

--切り捨て(整数)
SELECT ROUND(123456789, -1, 1) --結果 = 123456780
      ,ROUND(123456789, -2, 1) --結果 = 123456700
      ,ROUND(123456789, -3, 1) --結果 = 123456000

サンプルSQL (FLOOR関数)

SELECT FLOOR(1234.555)             --結果 = 1234
      ,FLOOR(1234.555 *  10) /  10 --結果 = 1234.500000
      ,FLOOR(1234.555 * 100) / 100 --結果 = 1234.550000

切り上げ

切り上げ するには CEILING 関数を使用します。第一引数に 丸めたい値を指定します。切り上げ位置の指定はできません。
切り上げ結果 = CEILING(丸めたい値)

サンプルSQL

--切り上げ
SELECT CEILING(0.19999) --結果 = 1

--マイナス値はゼロに近づく
SELECT CEILING(-0.9) --結果 =  0
      ,CEILING(-1.9) --結果 = -1

サンプルSQL の実行結果

四捨五入 - ROUND 四捨五入-ROUND

切り捨て - ROUND 切り捨て-ROUND

切り捨て - FLOOR 切り捨て-FLOOR

切り上げ - CEILING 切り上げ-CEILING

検証環境

関連ページ