適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric のウェアハウス
Microsoft Fabric の SQL データベース
指定された長さまたは有効桁数に丸めた数値を返します。
構文
ROUND ( numeric_expression , length [ , function ] )
引数
numeric_expression
真数のデータ型または概数のデータ型の式を指定します。
length
numeric_expressionの精度は四捨五入されるべきです。 length には、tinyint、smallint、または int 型の式を指定する必要があります。length に正の値を指定した場合、numeric_expression は length で指定した小数点以下桁数に丸められます。 length に負の値を指定した場合、numeric_expression の小数点の左側が length で指定した桁数に丸められます。
function
どのような手術を行うべきか。
関数はtinyint、smallint、intでなければなりません。関数が省略されるか、値が0(デフォルト)の場合、numeric_expressionは丸められます。
0以外の値を指定した場合、numeric_expressionは切り詰められます。
戻り値の型
次のデータ型を返します。
| 式の結果 | の戻り値の型 : |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| decimal および numeric カテゴリ (p, s) | 10進法(p, s) |
| money および smallmoney カテゴリ | money |
| float および real カテゴリ | float |
注釈
ROUND常に値を返します。 長さが負で小数点以下の桁数より大きい場合、ROUNDは0を返します。例 結果 ROUND(748.58, -4)0 ROUND長さが負の値の場合、データ型に関係なく丸められたnumeric_expressionを返します。例 結果 ROUND(748.58, -1)750.00 ROUND(748.58, -2)700.00 ROUND(748.58, -3)748.58はデフォルトで 10進数(5, 2)に切り替えられ、返 1000.00できないため、算術オーバーフローが発生します。4桁まで切り上げるには、入力のデータ型を変更してください。 次に例を示します。
SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);結果セットは次のとおりです。
1000.00ROUNDゼロから半分の切り上げ(商業的四捨五入とも呼ばれる)ことで同点を切ります。例 結果 ROUND(1.15, 1)1.2 ROUND(-1.15, 1)-1.2
例
A. ROUNDと推定値を使います
以下の例は、 ROUND を使うことで、最後の数字が常に推定値であることを示す2つの式を示しています。
SELECT ROUND(123.9994, 3),
ROUND(123.9995, 3);
GO
結果セットは次のとおりです。
----------- -----------
123.9990 124.0000
B. 丸め近似と丸め近似を用いる
次の例では、数値を丸めて概数化します。
SELECT ROUND(123.4545, 2),
ROUND(123.45, -2);
結果セットは次のとおりです。
---------- ----------
123.4500 100.00
C: ROUNDを使って切り捨てます
次の例では、2 つの SELECT ステートメントを使用して、丸め処理と切り捨て処理の違いを示します。 最初のステートメントは、結果を丸めます。 2 番目のステートメントは、結果を切り捨てます。
SELECT ROUND(150.75, 0);
GO
結果セットは次のとおりです。
151.00
SELECT ROUND(150.75, 0, 1);
GO
結果セットは次のとおりです。
150.00