【Python】printで小数点以下を表示しないで数値を表示する

この記事では、四捨五入、切り捨て、切り上げ、そしてフォーマット指定子を使った方法をわかりやすく解説します。

具体的なサンプルコードとともに、各方法の使い方や注意点を詳しく説明しますので、初心者の方でも安心して読み進めることができます。

目次から探す

四捨五入を使った方法

Pythonで小数点以下を表示しないで数値を表示する方法の一つに、四捨五入を使う方法があります。

ここでは、round()関数format()関数を使った方法について詳しく解説します。

round()関数の使い方

基本的な使い方

round()関数は、数値を指定した桁数に四捨五入するための関数です。

基本的な使い方は以下の通りです。

number = 3.14159
rounded_number = round(number)
print(rounded_number)  # 出力: 3

この例では、変数numberに格納された小数点以下の数値を四捨五入して整数にしています。

round()関数の引数に数値を渡すだけで、簡単に四捨五入ができます。

round()関数の注意点

round()関数を使う際には、いくつかの注意点があります。

例えば、0.5のような中間値の場合、Pythonは偶数への丸め(バンクラウンド)を行います。

print(round(0.5))  # 出力: 0
print(round(1.5))  # 出力: 2

このように、0.5は0に、1.5は2に四捨五入されます。

これは、統計的なバイアスを避けるための方法です。

format()関数を使った四捨五入

format()関数の基本

format()関数を使うと、数値を特定の形式で文字列に変換することができます。

これを利用して、小数点以下を表示しないようにすることも可能です。

number = 3.14159
formatted_number = format(number, '.0f')
print(formatted_number)  # 出力: 3

この例では、format()関数の第二引数に.0fを指定することで、小数点以下を表示しない形式に変換しています。

format()関数での四捨五入の例

format()関数を使って四捨五入を行う場合も、round()関数と同様に簡単に実装できます。

number = 2.71828
formatted_number = format(number, '.0f')
print(formatted_number)  # 出力: 3

この例では、変数numberに格納された数値を四捨五入して整数に変換し、文字列として表示しています。

format()関数を使うことで、数値の表示形式を柔軟に制御することができます。

以上が、四捨五入を使った方法の基本的な解説です。

次のセクションでは、切り捨てや切り上げを使った方法について詳しく見ていきます。

切り捨てを使った方法

小数点以下を表示しない方法として、切り捨てを使う方法があります。

切り捨てを行うことで、小数点以下の部分を完全に無視して整数部分だけを取得することができます。

Pythonでは、int()関数math.floor()関数を使って切り捨てを行うことができます。

int()関数を使った切り捨て

int()関数の基本

int()関数は、数値を整数に変換するための関数です。

この関数を使うと、小数点以下の部分が切り捨てられ、整数部分だけが残ります。

例えば、3.14int()関数に渡すと、3が返されます。

int()関数の使用例

以下に、int()関数を使って小数点以下を切り捨てる例を示します。

# 小数点以下を含む数値
num = 3.14
# int()関数を使って切り捨て
result = int(num)
# 結果を表示
print(result)  # 出力: 3

この例では、変数num3.14を代入し、int()関数を使って切り捨てを行っています。

結果として、3が出力されます。

math.floor()関数を使った切り捨て

math.floor()関数の基本

math.floor()関数は、数値を切り捨てて最も近い整数を返す関数です。

この関数は、Pythonの標準ライブラリであるmathモジュールに含まれています。

math.floor()関数を使うと、常に小数点以下が切り捨てられ、整数部分だけが返されます。

math.floor()関数の使用例

以下に、math.floor()関数を使って小数点以下を切り捨てる例を示します。

import math
# 小数点以下を含む数値
num = 3.14
# math.floor()関数を使って切り捨て
result = math.floor(num)
# 結果を表示
print(result)  # 出力: 3

この例では、mathモジュールをインポートし、変数num3.14を代入しています。

math.floor()関数を使って切り捨てを行い、結果として3が出力されます。

int()関数math.floor()関数の違いは、int()関数は単に小数点以下を切り捨てるだけですが、math.floor()関数は負の数に対しても正しく切り捨てを行う点です。

例えば、-3.14int()関数に渡すと-3が返されますが、math.floor()関数に渡すと-4が返されます。

# int()関数の例
print(int(-3.14))  # 出力: -3
# math.floor()関数の例
print(math.floor(-3.14))  # 出力: -4

このように、切り捨てを行う際には、どの関数を使うかによって結果が異なる場合があるため、用途に応じて適切な関数を選ぶことが重要です。

切り上げを使った方法

小数点以下を表示しない方法として、切り上げを使う方法もあります。

Pythonでは、mathモジュールのceil()関数を使って数値を切り上げることができます。

math.ceil()関数を使った切り上げ

math.ceil()関数の基本

math.ceil()関数は、指定した数値を切り上げて最も近い整数を返します。

例えば、3.2を切り上げると4になります。

この関数を使うためには、まずmathモジュールをインポートする必要があります。

以下は、math.ceil()関数の基本的な使い方です。

import math
# 数値を切り上げる
num = 3.2
result = math.ceil(num)
print(result)  # 出力: 4

math.ceil()関数の使用例

具体的な使用例をいくつか見てみましょう。

import math
# 例1: 正の小数点数を切り上げる
num1 = 5.7
result1 = math.ceil(num1)
print(f"{num1} を切り上げると {result1} になります。")  # 出力: 5.7 を切り上げると 6 になります。
# 例2: 負の小数点数を切り上げる
num2 = -2.3
result2 = math.ceil(num2)
print(f"{num2} を切り上げると {result2} になります。")  # 出力: -2.3 を切り上げると -2 になります。
# 例3: 整数を切り上げる
num3 = 4
result3 = math.ceil(num3)
print(f"{num3} を切り上げると {result3} になります。")  # 出力: 4 を切り上げると 4 になります。

上記の例では、math.ceil()関数を使って正の小数点数、負の小数点数、および整数を切り上げています。

特に負の数値の場合、切り上げると絶対値が小さくなる点に注意が必要です。

このように、math.ceil()関数を使うことで、簡単に数値を切り上げて小数点以下を表示しないようにすることができます。

フォーマット指定子を使った方法

Pythonでは、フォーマット指定子を使って数値の表示形式を簡単に制御することができます。

ここでは、%演算子、str.format()メソッド、そしてf文字列(f-strings)を使った方法について解説します。

%演算子を使ったフォーマット

%演算子の基本

%演算子は、C言語のprintfに似た形式で文字列をフォーマットするために使われます。

基本的な使い方は以下の通りです。

number = 123.456
formatted_number = "%d" % number
print(formatted_number)

この例では、%dが整数としてフォーマットする指定子です。

numberの小数点以下が切り捨てられ、整数部分のみが表示されます。

%演算子での数値表示の例

具体的な例をいくつか見てみましょう。

# 小数点以下を表示しない
number = 123.456
formatted_number = "%d" % number
print(formatted_number)  # 出力: 123
# 複数の数値をフォーマット
num1 = 123.456
num2 = 789.012
formatted_numbers = "%d and %d" % (num1, num2)
print(formatted_numbers)  # 出力: 123 and 789

str.format()メソッドを使ったフォーマット

str.format()メソッドの基本

str.format()メソッドは、より柔軟で読みやすいフォーマット方法を提供します。

基本的な使い方は以下の通りです。

number = 123.456
formatted_number = "{:.0f}".format(number)
print(formatted_number)

この例では、{:.0f}が小数点以下を表示しないフォーマット指定子です。

str.format()メソッドでの数値表示の例

具体的な例をいくつか見てみましょう。

# 小数点以下を表示しない
number = 123.456
formatted_number = "{:.0f}".format(number)
print(formatted_number)  # 出力: 123
# 複数の数値をフォーマット
num1 = 123.456
num2 = 789.012
formatted_numbers = "{:.0f} and {:.0f}".format(num1, num2)
print(formatted_numbers)  # 出力: 123 and 789

f文字列(f-strings)を使ったフォーマット

f文字列の基本

f文字列(f-strings)は、Python 3.6以降で使用可能な新しいフォーマット方法です。

変数を直接埋め込むことができ、非常に読みやすいのが特徴です。

基本的な使い方は以下の通りです。

number = 123.456
formatted_number = f"{number:.0f}"
print(formatted_number)

この例では、{number:.0f}が小数点以下を表示しないフォーマット指定子です。

f文字列での数値表示の例

具体的な例をいくつか見てみましょう。

# 小数点以下を表示しない
number = 123.456
formatted_number = f"{number:.0f}"
print(formatted_number)  # 出力: 123
# 複数の数値をフォーマット
num1 = 123.456
num2 = 789.012
formatted_numbers = f"{num1:.0f} and {num2:.0f}"
print(formatted_numbers)  # 出力: 123 and 789

以上が、フォーマット指定子を使った数値の表示方法です。

各方法にはそれぞれの利点があり、用途に応じて使い分けることができます。

応用例

ここでは、複数の数値を一度に表示する方法や、数値のリストや辞書の値を表示する方法について解説します。

これらの方法を使うことで、より複雑なデータ構造を扱う際にも小数点以下を表示しないで数値を表示することができます。

複数の数値を一度に表示する

複数の数値を一度に表示する場合、print()関数を使って一行で表示することができます。

以下の例では、round()関数を使って小数点以下を表示しないようにしています。

# 複数の数値を一度に表示する例
a = 3.14159
b = 2.71828
c = 1.61803
print(round(a), round(b), round(c))

このコードを実行すると、以下のように表示されます。

3 3 2

数値のリストを表示する

数値のリストを表示する場合、リスト内包表記を使って各要素を処理することができます。

以下の例では、int()関数を使って小数点以下を切り捨てています。

# 数値のリストを表示する例
numbers = [3.14159, 2.71828, 1.61803, 0.57721]
# リスト内包表記を使って各要素をint()で処理
rounded_numbers = [int(num) for num in numbers]
print(rounded_numbers)

このコードを実行すると、以下のように表示されます。

[3, 2, 1, 0]

辞書の値を表示する

辞書の値を表示する場合、辞書内包表記を使って各値を処理することができます。

以下の例では、math.floor()関数を使って小数点以下を切り捨てています。

import math
# 辞書の値を表示する例
data = {
    'pi': 3.14159,
    'e': 2.71828,
    'phi': 1.61803,
    'gamma': 0.57721
}
# 辞書内包表記を使って各値をmath.floor()で処理
floored_data = {key: math.floor(value) for key, value in data.items()}
print(floored_data)

このコードを実行すると、以下のように表示されます。

{'pi': 3, 'e': 2, 'phi': 1, 'gamma': 0}

これらの方法を使うことで、複数の数値やリスト、辞書の値を小数点以下を表示しないで簡単に表示することができます。

用途に応じて適切な方法を選んでください。

目次から探す