切捨て関数

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桁のみを保持します。
    • dnの小数点の右側の桁数以上である場合、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