1.端数処理
ここでは数値を整数に揃えることを考える。
端数がある場合に、どちらかの整数に寄せること→端数処理
- 端数が0.5より小さい場合は切り捨て
- 端数が0.5より大きい場合は切り上げ
- 端数が0.5ちょうどの場合は、切り上げ
→「四捨五入」
- 端数が0.5より小さい場合は切り捨て
- 端数が0.5より大きい場合は切り上げ
- 端数が0.5ちょうどの場合は、切り捨てか切り上げの内、結果が偶数となる方を選択
→「偶数丸め」
図:四捨五入と偶数丸めの丸め結果比較

| プログラミング言語及び環境 | 使い方 | |
|---|---|---|
| 四捨五入 | (1) Excel2013 ワークシート関数 | ROUND(数値, 0) |
| (2) PHP(バージョン5.3.8) 標準関数 | round(数値) | |
| (3) MySQL(バージョン5.5.16) 標準関数 | ROUND(数値) | |
| (4) SQL Server(バージョン2008R2) 標準関数 | ROUND(数値, 0) (*) | |
| 偶数丸め | (5) C#、VB.NET (.NET Framework 2.0) 標準関数 | Math.Round(数値) |
| (6) Access2013 VBA 標準関数 | Round(数値) | |
| (7) Excel2013 VBA 標準関数 | Round(数値) |
| EXCEL2013 VBA Round(数値) Access2013 VBA Round(数値) VB.NET(VS2005、.NET FW2.0) Math.Round(数値) C#(VS2005、.NET FW2.0) Math.Round(数値) | MySQL5.5.16 ROUND(数値) PHP5.3.8 ROUND(数値) EXCEL Round(数値, 0) | T-SQL(2008R2) Round(数値 | |
| -2 | -2 | -2 | -2 |
| -1.9 | -2 | -2 | -2 |
| -1.8 | -2 | -2 | -2 |
| -1.7 | -2 | -2 | -2 |
| -1.6 | -2 | -2 | -2 |
| -1.5 | -2 | -2 | -2 |
| -1.4 | -1 | -1 | -1 |
| -1.3 | -1 | -1 | -1 |
| -1.2 | -1 | -1 | -1 |
| -1.1 | -1 | -1 | -1 |
| -1 | -1 | -1 | -1 |
| -0.9 | -1 | -1 | エラー |
| -0.8 | -1 | -1 | エラー |
| -0.7 | -1 | -1 | エラー |
| -0.6 | -1 | -1 | エラー |
| -0.5 | 0 | -1 | エラー |
| -0.4 | 0 | 0 | 0 |
| -0.3 | 0 | 0 | 0 |
| -0.2 | 0 | 0 | 0 |
| -0.1 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 0.1 | 0 | 0 | 0 |
| 0.2 | 0 | 0 | 0 |
| 0.3 | 0 | 0 | 0 |
| 0.4 | 0 | 0 | 0 |
| 0.5 | 0 | 1 | エラー |
| 0.6 | 1 | 1 | エラー |
| 0.7 | 1 | 1 | エラー |
| 0.8 | 1 | 1 | エラー |
| 0.9 | 1 | 1 | エラー |
| 1 | 1 | 1 | 1 |
| 1.1 | 1 | 1 | 1 |
| 1.2 | 1 | 1 | 1 |
| 1.3 | 1 | 1 | 1 |
| 1.4 | 1 | 1 | 1 |
| 1.5 | 2 | 2 | 2 |
| 1.6 | 2 | 2 | 2 |
| 1.7 | 2 | 2 | 2 |
| 1.8 | 2 | 2 | 2 |
| 1.9 | 2 | 2 | 2 |
| 2 | 2 | 2 | 2 |
2.各種言語で実装されているROUND関数の端数処理
(1)動作が「四捨五入」となっている言語
| ①Excel2013 ワークシート関数 | ROUND(数値, 0) |
| ②PHP(バージョン5.3.8) 標準関数 | round(数値) |
| ③SQL Server(バージョン2008R2) 標準関数 | ROUND(数値, 0) |
(2)動作が「偶数丸め」となっている言語
| ④C#、VB.NET (.NET Framework 2.0) 標準関数 | Math.Round(数値) |
| ⑤Access2013 VBA 標準関数 | Round(数値) |
| ⑥Excel2013 VBA 標準関数 | Round(数値) |
| ⑦MySQL(バージョン5.5.16) 標準関数 | ROUND(数値) |
※②、④については、追加のパラメータ指定により「四捨五入」か「偶数丸め」かを制御可能
※③についてはManagementStudioで数値が次の範囲の場合にエラーが発生する。
範囲: -1.0<(数値)<-0.5 または +0.5<(数値)<+1.0
エラーメッセージ: expression をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。
参考URL
①https://support.office.com/ja-jp/article/ROUND-関数-c018c5d8-40fb-4053-90b1-b3e7f61a213c
②http://php.net/manual/ja/function.round.php
③https://dev.mysql.com/doc/refman/5.6/ja/mathematical-functions.html#function_round
④https://docs.microsoft.com/en-us/sql/t-sql/functions/round-transact-sql
⑤、⑥https://msdn.microsoft.com/ja-jp/library/ms131274(v=vs.110).aspx
⑦https://msdn.microsoft.com/ja-jp/library/office/gg278630.aspx
偶数丸めの利点

※もとの数値の合計と端数処理後の合計が近くなる


コメント