ROUND 関数は、数値 number を指定された小数点以下の桁数に四捨五入します。
構文
DOUBLE|DECIMAL ROUND(DOUBLE|DECIMAL <number>[, BIGINT <decimal_places>])
-- 標準的な例。
-- 125.32 が返されます。
SELECT ROUND(125.315, 2);パラメーター
number:必須。DOUBLE 型または DECIMAL 型の値。入力が STRING 型または BIGINT 型の値である場合、暗黙的に DOUBLE 型に変換されます。
decimal_places:オプション。数値を四捨五入する小数点以下の桁数を指定する BIGINT 型の定数。このパラメーターを省略した場合、数値は最も近い整数に四捨五入されます。デフォルト値は 0 です。
説明decimal_places の値は負の値にすることができます。負の値は、小数点の左側で四捨五入することを示します。戻り値の小数部は 0 になります。負の値の絶対値が number の整数部の桁数以上である場合、関数は 0.0 を返します。
戻り値
DOUBLE 型または DECIMAL 型の値を返します。以下のルールが適用されます:
number が DOUBLE 型または DECIMAL 型の場合、対応する型の値が返されます。
説明number が DOUBLE 型の場合、DOUBLE 型は精度を保証できないため、ROUND 関数の結果で精度が失われる可能性があります。詳細については、「ROUND 関数の精度の問題」をご参照ください。
number が STRING 型または BIGINT 型の場合、DOUBLE 型の値が返されます。
decimal_places が BIGINT 型でない場合、エラーが返されます。
number または decimal_places が NULL の場合、NULL が返されます。
例
-- 125.0 が返されます。
SELECT ROUND(125.315);
-- 125.3 が返されます。
SELECT ROUND(125.315, 1);
-- 125.32 が返されます。
SELECT ROUND(125.315, 2);
-- 125.315 が返されます。
SELECT ROUND(125.315, 3);
-- -125.32 が返されます。
SELECT ROUND(-125.315, 2);
-- 百の位に四捨五入します。
-- 100.0 が返されます。
SELECT ROUND(123.345, -2);
-- NULL が返されます。
SELECT ROUND(NULL);
-- 指定された精度が元の小数点以下の桁数を超えています。元の値が返されます。
-- 123.345 が返されます。
SELECT ROUND(123.345, 4);
-- 一万の位に四捨五入します。値が十分に大きくないため、0 が返されます。
-- 0.0 が返されます。
SELECT ROUND(123.345, -4);関連関数
ROUND は数学関数です。データ計算および変換関数の詳細については、「数学関数」をご参照ください。