SQLiteで端数処理

端数処理(丸め)と言えば四捨五入、切り捨て、切り上げですが、SQLiteには四捨五入(round関数)はあっても切り捨て・切り上げの関数がありません。

ユーザー定義関数で実装するというのもひとつの手ですが、今回はSQLiteの標準関数の組み合わせでどうにかしてみようと思います。

現在は小数を中心に扱っていますが、さまざまな場面を想定したバリエーションを増やしていく予定です。
(あまりより取り見取りでも使うとき困るような気がしますが)

  1. 小数
    1. 準備
    2. 四捨五入
      1. 通常の四捨五入
      2. 端数が0.5のとき常に正の無限大へ丸める
      3. 端数が0.5のとき常に負の無限大へ丸める
      4. 端数が0.5のとき偶数へ丸める(最近接偶数への丸め)
    3. 切り捨て
      1. 0への丸め(絶対値の切り捨て)
      2. 負の無限大への丸め(床関数)
    4. 切り上げ
      1. 無限大への丸め(絶対値の切り上げ)
      2. 正の無限大への丸め(天井関数)
  2. 整数
    1. 準備
    2. 四捨五入
      1. 通常の四捨五入
      2. 端数が0.5のとき常に正の無限大へ丸める
      3. 端数が0.5のとき常に負の無限大へ丸める
      4. 端数が0.5のとき偶数へ丸める(最近接偶数への丸め)
    3. 切り捨て
      1. 0への丸め(絶対値の切り捨て)
      2. 負の無限大への丸め(床関数)
    4. 切り上げ
      1. 無限大への丸め(絶対値の切り上げ)
      2. 正の無限大への丸め(天井関数)