Pythonで小数点以下2桁に丸める方法!round()と文字列フォーマットの使い分けを解説
Pythonで数値を小数点以下2桁に丸めるには、どうすればよいのでしょうか?実はPythonには、数値を丸めるための便利な関数がいくつか用意されています。
数値を小数点以下2桁に丸める処理は、プログラミングにおいて非常によく使われます。たとえば金額は小数点以下2桁までしか扱わないため、3桁目の端数が含まれたまま計算することは避けたいものです。また、体重などの数値も2桁で表現されることが多く、それ以上の精度はほとんどの場合不要です。
この記事では、Pythonで数値を小数点以下2桁に丸める方法を、実際のコード例とともにわかりやすく解説します。2つの異なるアプローチを紹介するので、自分のコードに合わせて使い分けられるようになりますよ。
round()関数を使って数値を丸める方法
まずは具体的なシナリオとして、「友人グループで夕食を食べた際の割り勘額を計算するプログラム」を作成してみましょう。最初に、食事の合計金額と人数をユーザーに入力してもらいます。
meal_cost = input("How much did your meal cost? ")
friends = input("How many friends were with you? ")
次に、1人あたりの支払額を計算します。ここでは、注文内容に関係なく全員が均等に支払うものと仮定します。
cost_per_friend = float(meal_cost) / float(friends)
「meal_cost」と「friends」の両方をfloat型(浮動小数点数)に変換しているのは、input()メソッドが文字列を返すためです。文字列のままでは、Pythonの算術演算子を使って計算することができません。
続いて、この値を小数点以下2桁に丸めます。使用するのは組み込み関数のround()です。round()関数を使うと、値を最も近い整数、または指定した小数点以下の桁数に丸めることができます。
さらに、1人あたりの支払額をコンソールに出力して確認しましょう。
rounded_value = round(cost_per_friend, 2)
print("Each friend must pay $" + str(rounded_value) + " for dinner.")
組み込み関数round()を使って「cost_per_friend」の値を小数点以下2桁に丸めています。その後、文字列連結によってメッセージを作成し、コンソールに出力しています。このメッセージにより、1人あたりいくら支払うべきかがひと目でわかります。
コードを実行すると、次のような結果になります。
How much did your meal cost? 64.92 How many friends were with you? 6 Each friend must pay $10.82 for dinner.
もし64.92を6で割った結果を丸めずにそのまま表示していたら、小数点以下が長く続く見づらい数値になっていたはずです。round()関数で除算の結果を2桁に丸めることで、1人あたり10.82ドルという読みやすい金額を求められました。
文字列フォーマットを使って数値を丸める方法
先ほどの例では、丸めた数値を文字列として表示しました。実は、数値を単に文字列として表示したいだけであれば、もうひとつ別の方法があります。ただしこの方法は、Python 3.x系でのみサポートされています。
今度は、.format()による文字列フォーマット構文を使って、1人あたりの支払額を丸めるようにコードを書き換えてみましょう。
まずは、これまでと同様に1人あたりの金額を計算します。
meal_cost = input("How much did your meal cost? ")
friends = input("How many friends were with you? ")
cost_per_friend = float(meal_cost) / float(friends)
次に、1人あたりの支払額を出力するprint()文を記述します。ここでは.format()をprint()文と組み合わせて使い、文字列の中で値を整形しています。
print("Each friend must pay ${:0.2f} for dinner.".format(cost_per_friend))
この.format()文では、次の書式指定を使うことで、小数点以下2桁に丸められた数値表現を生成しています。
{:0.2f}
それぞれの要素の意味は以下の通りです。
- コロン(:):ここから値の書式指定が始まることを示します。
- ゼロ(0):数値を扱っており、必要に応じてゼロ埋めされる可能性があることをPythonに伝えます。
- .2:小数点以下2桁に丸めるよう指示します。
- f:値を固定小数点数として表示します。
コードを実行して結果を確認してみましょう。
How much did your meal cost? 64.92 How many friends were with you? 6 Each friend must pay $10.82 for dinner.
コードは正常に動作し、1人あたりの支払額が正しく計算されました。結果は最初のコード例と同じです。小数点以下が2桁で表示されていることから、数値が小数点以下2桁に丸められたことがわかります。
この方法は、単に値をコンソールに表示したいだけなら、最初のコード例よりも効率的です。このコードではround()を一切使っていない点に注目してください。
一方で、丸めた値をその後のコード内でさらに利用したい場合には、文字列フォーマット構文は不向きです。あくまで「表示用」の丸め方だと覚えておきましょう。
まとめ
Pythonで数値を小数点以下2桁に丸める主な方法は、次の2つです。
- round()関数を使う方法
- 文字列フォーマット(.format())を使う方法
1つ目のround()関数は、どんな場面でも数値を丸められる汎用的な方法です。2つ目の文字列フォーマットは、値を文字列として表示したい場合に限り有効で、かつPython 3.x系でのみ使えます。
用途に応じて適切な方法を選べば、あなたもPythonプロのように数値を美しく丸められるようになります。ぜひ実際のコードで試してみてください!
-
Pythonで2つのプロットを並べて作成する方法【matplotlibのsubplot活用】
matplotlibのsubplot(row, col, index)メソッドを使うと、1つの図(figure)を行数×列数の領域に分割し、指定したインデックスの位置にそれぞれグラフを描画できます。本記事では、このメソッドを利用して、1つの図の中に2つのグラフを横並びで作成する方法を解説します。 実装の手順 numpyを使って、x座標と2種類のy座標(y1、y2)のデータポイントを作成します。 nrows=1、ncols=2、index=1を指定してsubplot()メソッドを呼び出し、現在のfigureに最初のサブプロットを追加します。 plot()メソッドで、xとy1のデータを使って折れ
-
Excelで数式を使わずに数値を丸める3つの簡単な方法
この記事では、Excelで数式を使わずに数値を丸める方法をご紹介します。切り上げ、切り捨て、小数点以下の削除など、さまざまな手順を解説します。ここでは主にExcelに標準搭載されている組み込み機能を活用した方法を取り上げます。どの手順も非常にシンプルなので、用途に合わせて自由に選択できます。 Excelで数式を使わずに数値を丸める3つの簡単な方法 この記事では、例として円周率(PI)の値を使用します。この値をさまざまな小数点以下の桁数に丸めていきましょう。PIの値をワークシートに挿入するには、任意のセルに=PI()と入力してください。 ご覧のとおり、この値は小数点以下14桁あります。 1.