2006-12-18
■[SQL Server][DB]切り捨て、切り上げ、四捨五入(マイナス値は要注意)

SQLで、切り捨て、切り上げ、四捨五入は、全部round関数しかないと思ってました。
| 切り捨て | FLOOR | 引数nに対して、それ以下で最も大きい整数値 |
| 切り上げ | CEILまたはCEILING | 引数nに対して、それ以上で最も小さい整数値 |
| 四捨五入 | ROUND | 四捨五入 |
知らなかった。。
小数以下を細かく設定する場合はROUNDでしょうけども。
面倒なやりかたをしていた自分が恥ずかしい。
あ。でもマイナス数値の場合、気をつけないと予期しない値になるかも。
select ceiling(-2.5) as CEIL, floor(-2.5) as FLOOR, round(-2.5, 0) as ROUND
の結果は
| CEIL | FLOOR | ROUND |
| -2 | -3 | -3 |
む。厳密には、切り捨て、切り上げにならないか?
トラックバック - http://d.hatena.ne.jp/htada/20061218



「切り捨て」は、少数を無かったことにする、0 に近づく方向へ寄せる感じがしているので、マイナスの場合は要注意かなと思って書いた...のだと思います。
今思えば、FLOORやCAILは「切り捨て/切り上げ」ではなく、「正の方に寄せる/負の方に寄せる」ですね。