丸め関数
round
関数は、入力式の値を小数点の右側の指定された桁数まで丸めます。
構文:
double round(n [, d ])
セマンティクス:
- n, d: 引数nおよびdは、数値に解決される式です。dの値は-30 <=d<=30の範囲内である必要があります。最大絶対値30を超えるdの値は、それぞれ30または-30に切り捨てられます。dが整数でない場合は、整数値にキャストされます。
たとえば、
round(123.456,1.5)
はround(123.456,1)
であるとみなされ、round(123.456,50)
はround(123.456,30)
として処理されます。 - 戻り型: double。
nおよびdの値に応じて、
round
関数は次のように動作します:- dが正の値である場合、関数はnを小数点の右側のd桁に丸めます。nの小数部が0.5以上である場合、値は切り上げられます。
たとえば、
round(0.5)
は1.0を返し、round(-0.5)
は-1.0を返します。 - dがnの小数点の右側の桁数以上である場合、nの値が返されます。
- dが指定されていないかゼロの場合、関数はnを小数点以下ゼロに丸めます。
- dが負の値である場合、関数はnを小数点の左側に丸めます。小数点の左側にあるnの桁数がdの絶対値以下の場合、関数は0.0を返します。
- dの値に関係なく、nが0の場合はゼロを返します(dがNULLである場合を除く)。
- 次の場合にNULL値を返します:
- いずれかの引数がNULL値である場合
- いずれかの引数が数値に解決されない場合
- いずれかの引数がNaNまたは無限大に解決される場合は、nを返します。
- dが正の値である場合、関数はnを小数点の右側のd桁に丸めます。nの小数部が0.5以上である場合、値は切り上げられます。
例:
SELECT round(n,d) FROM Userstocks
nの値 | dの値 | 出力 |
---|---|---|
100.331 | 2 | 100.33 |
100.367 | 2 | 100.37 |
111.567 | 0.5 | 112.0 |
111.567 | 4 | 111.567 |
10.361 | 0または指定なし | 10.0 |
111.331 | -2 | 100.0 |
111.331 | -4 | 0.0 |
-100.331 | 2 | -100.33 |
-111.331 | -2 | -100.0 |