用語比較
round()と四捨五入の違い|0.5が0になる偶数への丸めとは(Python3基礎)
round() は、学校で習う四捨五入とは違う結果を返すことがあります。二つの候補が同じだけ近いとき、Python の round() は偶数の方へ丸めます。そのため round(0.5) は 1 ではなく 0、round(1.5) は 2 になります。
Python3エンジニア認定基礎試験は、主教材「Pythonチュートリアル 第4版」の基礎文法部分から出題され、数値の演算(第3章)で扱う組み込み関数 round() も範囲に入ります。挙動の詳しい決まりは、Python 公式ドキュメントの組み込み関数の項に書かれています。
このページは、round() の結果が四捨五入と合わずに戸惑った人向けです。ちょうど真ん中の値の扱いと、小数が正確に表せないことによる結果の違いに絞って整理します。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。Python3エンジニア認定基礎試験の一次情報確認日: 2026-09-18。
結論
round() の丸め方
10 のマイナス ndigits 乗の倍数のうち最も近いものに丸める。二つが同じだけ近いなら偶数を選ぶ方へ丸める。
四捨五入との違い
四捨五入は 0.5 を切り上げる。round() は 0.5 のような真ん中の値を偶数の方へ丸めるので、round(0.5) は 0。
戻り値の型
ndigits を省略すると整数、指定すると number と同じ型。
違いを表で確認
| 比較軸 | round() の丸め方 | 四捨五入との違い |
|---|---|---|
| ちょうど真ん中の値 | 四捨五入:0.5 は切り上げて 1 | round():偶数の方へ丸めるので round(0.5) は 0 |
| 1.5 の結果 | 四捨五入:2 | round(1.5):2(偶数の方へ丸めた結果) |
| 戻り値の型 | round():ndigits 省略または None なら整数 | round():ndigits を指定すれば number と同じ型 |
| 小数の桁指定 | 四捨五入:2.675 を小数第2位で丸めると 2.68 | round(2.675, 2):2.67(公式ドキュメントの注釈) |
Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)
試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。
どこで迷っているかを切り分ける
round(0.5) が 0 になって驚いた人
バグではありません。0 と 1 が同じだけ近いので、偶数の 0 が選ばれます。公式ドキュメントも round(0.5) と round(-0.5) は両方とも 0 になると述べています。
round(2.675, 2) が 2.68 にならず困った人
公式ドキュメントは、これはバグではないと注釈しています。ほとんどの小数が浮動小数点数で正確に表せないことの結果です。
常に切り上げの四捨五入をしたい人
round() は偶数の方へ丸める決まりなので、そのままでは常に切り上げにはなりません。結果を予想するときは、まず round() の決まりのとおりに考えます。
具体例で使い分ける
例 1
ちょうど真ん中の値の例:round(0.5) と round(1.5)(公式ドキュメントの例)
round(0.5)、round(-0.5)、round(1.5) をそれぞれ実行します。
- ndigits を省略しているので、入力値に最も近い整数が返ります。
- 0.5 は 0 と 1 から同じだけ近く、-0.5 は 0 と -1 から同じだけ近いので、偶数の 0 が選ばれます。
- 1.5 は 1 と 2 から同じだけ近いので、偶数の 2 が選ばれます。
結論: 答えは 0、0、2 です。四捨五入なら 1、-1、2 になる場面で、round() の結果は違います。
例 2
小数の桁を指定した例:round(2.675, 2)(公式ドキュメントの注釈)
round(2.675, 2) を実行します。
- 2.675 は、浮動小数点数では正確に表せない小数です。
- そのため、予想される 2.68 ではなく 2.67 が返ります。
- 戻り値は number と同じ型なので、float です。
結論: 答えは 2.67 です。バグではなく、小数を浮動小数点数で表すことの結果です。
問題文から答えを選ぶ手順
- 1
ndigits の有無を確認する
省略または None なら整数、指定があれば number と同じ型が返ります。
- 2
真ん中の値かを確認する
二つの候補から同じだけ近い値なら、偶数の方へ丸めます。
- 3
小数の桁指定は表し方も疑う
2.675 のように浮動小数点数で正確に表せない小数は、見た目どおりに丸まらないことがあります。
試験での見分け方
- 1round() は最も近い倍数に丸め、同じだけ近いなら偶数の方を選ぶ。
- 2round(0.5) と round(-0.5) は両方とも 0、round(1.5) は 2。
- 3ndigits を省略すると戻り値は整数、指定すると number と同じ型。
- 4round(2.675, 2) は 2.67。小数が浮動小数点数で正確に表せないための結果で、バグではない。
誤答しやすい選択肢
round() は学校の四捨五入と同じだと思う
修正: round() は、二つの候補が同じだけ近いとき偶数の方へ丸めます。round(0.5) は 0 です。
round(2.675, 2) が 2.67 になるのを不具合と考える
修正: 公式ドキュメントは、これはバグではなく、小数が浮動小数点数で正確に表せないことの結果だと説明しています。
ndigits を指定しても整数が返ると思う
修正: ndigits を指定すると、戻り値は number と同じ型です。整数が返るのは ndigits を省略するか None のときです。
確認問題
Q1round(1.5) の結果は何ですか?
答え: 2
1 と 2 が同じだけ近いので、偶数の 2 に丸められます。公式ドキュメントの例と同じです。
Q2round(0.5) の結果は何ですか?
答え: 0
0 と 1 が同じだけ近いので、偶数の 0 に丸められます。公式ドキュメントの例と同じです。
Q3round(2.675, 2) の結果は 2.68 と 2.67 のどちらですか?
答え: 2.67
小数が浮動小数点数で正確に表せないための結果で、バグではないと公式ドキュメントが注釈しています。
到達チェック
- 同じだけ近い値は偶数の方へ丸められると説明できる
- round(0.5)・round(-0.5)・round(1.5) の結果を言える
- ndigits を省略したときの戻り値が整数だと言える
- round(2.675, 2) が 2.67 になる理由を説明できる
関連ページで確認する
同じ資格で次に知りたいこと
- json.load()とjson.loads()の違い|ファイルから読むか、文字列から読むか(Python3基礎)
json.load() はファイルのような読み取り元から、json.loads() は JSON を含む文字列(str・bytes・bytearray)から Python のオブジェクトへ戻します。Python 公式ドキュメントの記述と例、確認問題つきで使い分けを整理します。
- str.find()とstr.index()の違い|見つからないとき -1 か ValueError か(Python3基礎)
文字列の find() と index() は、探す文字列が見つからないときの動きだけが違います。find() は -1 を返し、index() は ValueError を発生させます。Python 公式ドキュメントの記述と実行結果、-1 を添字に使う落とし穴、in 演算子との使い分け、確認問題つきで整理します。
- re.sub()とstr.replace()の違い|決まった文字列かパターンか(Python3基礎)
str.replace() は決まった文字列を別の文字列に置き換え、re.sub() は正規表現のパターンに合う部分を置き換えます。公式チュートリアルの『最小限の機能だけなら文字列メソッドがお勧め』という記述と計算例、確認問題つきで使い分けを整理します。
よくある質問
Qround() は四捨五入ですか?
同じではありません。二つの候補が同じだけ近いとき、round() は偶数の方へ丸めます。そのため round(0.5) は 0、round(1.5) は 2 です。
Qround(2.675, 2) が 2.68 にならないのはなぜですか?
ほとんどの小数が浮動小数点数で正確に表せないためで、バグではないと公式ドキュメントに書かれています。
Qround() の戻り値は整数ですか?
ndigits を省略するか None にすると整数です。ndigits を指定すると number と同じ型です。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: ミナト編集部(運営者情報を見る)
