次の方法で共有


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)

関連項目

参照

CEILING (Transact-SQL)

データ型 (Transact-SQL)

式 (Transact-SQL)

FLOOR (Transact-SQL)

数学関数 (Transact-SQL)