ROUND (Transact-SQL)
Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス
指定された長さまたは有効桁数に丸めた数値を返します。
構文
ROUND ( numeric_expression , length [ ,function ] )
引数
numeric_expression
真数または概数のデータ型カテゴリの式です。
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), ROUND(123.45, -2);
結果セットは次のとおりです。
---------- ----------
123.4500 100.00
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)