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