SQLServerで値の丸めを行う
SQLServerで値の丸め(切り上げ・切り捨て・四捨五入)を行うには、FLOOR、CELLING、ROUNDといったファンクションを利用する。
- FLOOR
整数への切り上げを行う
第1引数:対象の値(数値) - CELLING
整数への切り捨てを行う
第1引数:対象の値(数値) - ROUND
四捨五入を行う
第1引数:対象の値(数値)
第2引数:数値を丸める際の有効桁数(例:-1→10の位、0→1の位、1→小数点第一位)
第3引数:オプション機能(0:四捨五入、0以外:切り捨て/デフォルト(未指定)は0)
整数への切り上げ・切り捨て・四捨五入
整数への切り上げ・切り捨て・四捨五入は特に意識することなく各ファンクションを利用する。
<切り上げ>
1 2 3 | SELECT CEILING(1.4); --> 2 SELECT CEILING(1.5); --> 2 SELECT CEILING(1.01); --> 2 |
<切り捨て>
1 2 3 4 | SELECT FLOOR(1.4); --> 1 SELECT FLOOR(1.5); --> 1 SELECT ROUND(1.4, 0, 1); --> 1.0 SELECT ROUND(1.5, 0, 1); --> 1.0 |
<四捨五入>
1 2 | SELECT ROUND(1.4, 0); --> 1.0 SELECT ROUND(1.5, 0); --> 2.0 |
小数点第二位への切り上げ・切り捨て・四捨五入
小数点以下の単位で切り捨て・四捨五入を行うには、ROUNDを利用することで可能。
ただし、切り上げについては、一度整数に変換してCEILINGで切り上げを行った後、改めて元の精度に戻すなどの工夫が必要となる。
<切り上げ>
1 2 3 | SELECT CEILING(1.004 * 100) / 100 --> 1.010000 SELECT CEILING(1.005 * 100) / 100 --> 1.010000 SELECT CEILING(1.0001 * 100) / 100 --> 1.010000 |
<切り捨て>
1 2 | SELECT ROUND(1.004, 2, 1); --> 1.000 SELECT ROUND(1.005, 2, 1); --> 1.000 |
<四捨五入>
1 2 | SELECT ROUND(1.004, 2); --> 1.000 SELECT ROUND(1.005, 2); --> 1.010 |