次の方法で共有


ROUND (Transact-SQL)

指定された長さまたは有効桁数に丸めた数値を返します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

ROUND (numeric_expression , length [ ,function ] )

引数

  • numeric_expression
    真数型または概数型のです。ただし、bit 型は除きます。

  • length
    numeric_expression を丸める有効桁数です。length は tinyint 型、smallint 型、または int 型である必要があります。length に正の値を指定した場合、numeric_expression は length で指定した小数点以下桁数に丸められます。length に負の値を指定した場合、numeric_expression は length で指定した小数点の左側の位置で丸められます。

  • function
    実行する操作の種類です。function は、tinyint 型、smallint 型、int 型のいずれかである必要があります。function を省略した場合、または 0 (既定値) を指定した場合、numeric_expression は丸められます。0 以外の値を指定した場合、numeric_expression は切り捨てられます。

戻り値の型

次のデータ型を返します。

式の結果

戻り値の型

tinyint

int

smallint

int

int

int

bigint

bigint

decimal 型と numeric 型 (p, s)

decimal(p, s)

money 型と smallmoney 型

money

float 型と real 型

float

説明

ROUND は常に値を返します。length が負の値で、整数部の桁数より大きい場合、ROUND は 0 を返します。

結果

ROUND(748.58, -4)

0

ROUND は、length が負の値であるときは、データ型に関係なく、numeric_expression を丸めて返します。

結果

ROUND(748.58, -1)

750.00

ROUND(748.58, -2)

700.00

ROUND(748.58, -3)

748.58 は既定で decimal(5,2) になり、これは 1000.00 を返すことができないため、算術オーバーフローになります。

4 桁に切り上げるには、入力のデータ型を変更する必要があります。次に例を示します。

SELECT ROUND(CAST (748.58 AS decimal (6,2)),-3);

1000.00

A. ROUND と概数を使用する

次の例では、ROUND を使用することにより最後の桁が常に概数になることを表す 2 つの式を示します。

SELECT ROUND(123.9994, 3), ROUND(123.9995, 3)
GO

以下に結果セットを示します。

----------- -----------
123.9990    124.0000    

B. ROUND を使用して概数を丸める

次の例では、数値を丸めて概数化します。

SELECT ROUND(123.4545, 2);
GO
SELECT ROUND(123.45, -2);
GO

以下に結果セットを示します。

----------

123.4500

(1 row(s) affected)

--------

100.00

(1 row(s) affected)

C. ROUND を使用して切り捨てを行う

次の例では、2 つの SELECT ステートメントを使用して、丸め処理と切り捨て処理の違いを示します。最初のステートメントは、結果を丸めます。2 番目のステートメントは、結果を切り捨てます。

SELECT ROUND(150.75, 0);
GO
SELECT ROUND(150.75, 0, 1);
GO

以下に結果セットを示します。

--------
151.00

(1 row(s) affected)

--------
150.00

(1 row(s) affected)