MySQL関数リファレンス

小数点第N位で切り捨てる (TRUNCATE)

スポンサードリンク
書式
TRUNCATE( 数値X, 数値Y )

TRUNCATE関数を使用することで数値Xを小数点以下第 ( Y + 1 ) 位を切り捨てることができます。
数値を切り捨てる際、数値はゼロの方向に丸められます。

例1(小数点以下第二位を切り捨てる場合)
mysql> SELECT TRUNCATE( 123.456, 1 );
+------------------------+
| TRUNCATE( 123.456, 1 ) |
+------------------------+
|                  123.4 |
+------------------------+
1 row in set (0.00 sec)

負の小数を引数とした場合、切捨て後の数値はゼロの方向に丸められます。

例2(負の小数を引数とする場合)
mysql> SELECT TRUNCATE( -123.456, 1 );
+-------------------------+
| TRUNCATE( -123.456, 1 ) |
+-------------------------+
|                  -123.4 |
+-------------------------+
1 row in set (0.00 sec)

第二引数が0の場合、FLOOR関数とほとんど同じ動作をしますが、負の小数を引数とした場合は数値の丸める方向が異なるため注意が必要です。
FLOOR関数は引数以下で最大の整数を返しますが、TRUNCATE関数の場合はゼロの方向に数値が丸められます。

例3(FLOOR との動作の比較)
mysql> SELECT TRUNCATE( 15.56 ,0 ), FLOOR( 15.56 );
+----------------------+----------------+
| TRUNCATE( 15.56 ,0 ) | FLOOR( 15.56 ) |
+----------------------+----------------+
|                   15 |             15 |
+----------------------+----------------+
1 row in set (0.00 sec)

mysql> -- 負の小数の場合、動作が異なる
mysql> SELECT TRUNCATE( -15.56 ,0 ), FLOOR( -15.56 );
+-----------------------+-----------------+
| TRUNCATE( -15.56 ,0 ) | FLOOR( -15.56 ) |
+-----------------------+-----------------+
|                   -15 |             -16 |
+-----------------------+-----------------+
1 row in set (0.00 sec)

文字を引数とした場合はNULLではなく0が返されます。

例4(文字を引数とした場合)
mysql> SELECT TRUNCATE( 'a', 0 );
+--------------------+
| TRUNCATE( 'a', 0 ) |
+--------------------+
|                  0 |
+--------------------+
1 row in set (0.00 sec)
スポンサードリンク
Tではじまる MySQL の関数 / 数値を扱う関数

数値を扱う関数

絶対値を求める (ABS)
剰余を求める (MOD)
小数点以下を切り下げる (FLOOR)
小数点以下を切り上げる (CEILING)
小数点以下を切り上げる (CEIL)
小数点以下を四捨五入する (ROUND)
対数を求める (LOG)
2を底とした対数を求める (LOG2)
10を底とした対数を求める (LOG10)
累乗(べき乗)を求める (POW)
累乗(べき乗)を求める (POWER)
符号を調べる (SIGN)
平方根を求める (SQRT)
円周率を求める (PI)
乱数を生成する (RAND)
最小値を調べる (LEAST)
最大値を調べる (GREATEST)
ラジアンを度に変換する (DEGREES)
度をラジアンに変換する (RADIANS)
小数点第N位で切り捨てる (TRUNCATE)
数値を整形する (FORMAT)
スポンサードリンク

Tではじまる MySQL の関数

TAN タンジェントを求める
TRIM 文字列の両側から特定の文字列を削除する
TRUNCATE 小数点第N位で切り捨てる