[mysql]端数処理(四捨五入、切り捨て、切り上げ)

  備忘録
【注意】
この記事は過去に別サイトで執筆したものを再掲載したものです。
内容が古くなっていて現在では適用できない場合や、もっと良い方法が出来ている場合があります。
 

四捨五入として round()関数があるが、挙動が好ましくないようなので truncate()関数を利用する。
truncate関数は端数を切り捨てる関数だが、切り捨て前に切り上げ分を加算することで四捨五入や切り上げを実現する。

四捨五入

3.45を小数第2位で四捨五入して、小数第1位までの値を得る。

select truncate(3.45 + 0.05, 1)

切り捨て

3.45を小数第1位までの値を得る。

select truncate(3.45, 1)

切り上げ

3.45を小数第1位位までの値を得る。

select truncate(3.45 + 0.09, 1)

0.09は3.401以上の値を切り捨て対象にすることになる。
3.4001以上の値も対象にしたいときは0.099を加算する。

LEAVE A COMMENT