PostgreSQLでは、trunc() 関数は数値を切り捨てます。
具体的には、数値をゼロまたは特定の小数点以下の桁数に切り捨てます。
構文
trunc() 関数は、次のいずれかの方法で使用できます。
trunc(dp or numeric)
trunc(v numeric, s int) 最初の構文は、数値をゼロに向かって切り捨てます。
2番目の構文は、指定された小数点以下の桁数に切り捨てます。この場合、v は番号であり、s は小数点以下の桁数です。
最初の構文の例
これが最初の構文を使用する例です。
SELECT trunc(342.49); 結果:
342
2番目の構文の例
2番目の構文を使用する例を次に示します。
SELECT trunc(342.49, 1); 結果:
342.4
小数秒の追加
数値に小数点以下の桁数が含まれていない場合に、小数点以下の桁数を指定する例を次に示します。
SELECT trunc(342, 3); 結果:
342.000
負の数
負の数を使用する例を次に示します。
SELECT round(-4.5); 結果:
-5
負の小数点以下の桁数
2番目の引数が負の値の場合は次のようになります。
SELECT trunc(342, -2); 結果:
300
Trunc()とRound()
場合によっては、trunc() 関数はround()と同じように機能するように見える場合があります 。しかし、それらはまったく異なる機能です。
round() 関数は数値を丸めます。数値は、最も近い整数または指定された小数点以下の桁数に丸められます(1つの引数を指定するか2つの引数を指定するかによって異なります)。
trunc() 一方、関数は、数値をゼロまたは指定された小数点以下の桁に切り捨てるだけです。丸めは実行されません。
違いを示す例を次に示します。
SELECT
round(342.49, 1),
trunc(342.49, 1); 結果:
round | trunc -------+------- 342.5 | 342.4