Python で浮動小数点数を整数に変換する
Python で浮動小数点数を整数に変換することは、組み込みの関数とライブラリのおかげで比較的簡単です。浮動小数点数を整数に変換する場合、2つの可能性があります。このタスクを実行する関数を自分で作成するのは簡単ですが、この記事では、組み込み関数とライブラリの使用方法についてのみ説明します。
1.52
などの番号があるとします。この数値を整数に変換したい場合は、2
または 1
のいずれかを使用できます。前者は上限値であり、後者は下限値です。このタスクを実行する関数はいくつかあるため、それらはすべて上記のタスクを異なる方法で実行し、異なる値を返します。したがって、ユースケースに基づいてそれに応じて機能を選択してください。
Python の int()
関数を使用して浮動小数点数を整数に変換する
number = 25.49
print(int(number))
出力:
25
int()
関数は、数値を表す引数を受け取り、それを整数に変換します。この引数は、文字列、浮動小数点値、または整数自体にすることができます。この関数は、数値の小数点以下の整数値または部分を考慮して返します。
ただし、integer.9999999999999999
の形式の数値が引数として渡される場合、int()
の動作は少し異なります。小数点以下の桁数が 16 以上の場合、関数は正の値の場合は整数+ 1
を返し、負の値の場合は整数-1
を返します。
概念をよりよく理解するには、次のコードスニペットを参照してください。
print(int(1.5))
print(int(1.51))
print(int(1.49))
print(int(-1.5))
print(int(-1.51))
print(int(-1.49))
print(int(1.9999999999999999))
print(int(-1.9999999999999999))
出力:
0
1
1
1
1
-1
-1
-1
2
-2
Python の math
モジュールを使用して浮動小数点数を整数に変換する
組み込みの Python ライブラリ math
を使用して同じタスクを実行できます。このライブラリには、数学計算に必要なあらゆる種類の数学関数があります。
math
ライブラリの 3つの数学関数についてのみ説明します。
名前が示すように、trunc()
関数は、引数として渡された数値の小数部分を切り捨てるか、切り取るか、削除し、整数部分のみを考慮します。組み込みの int()
関数とまったく同じように動作し、上記で説明した例外を除いて動作が異なります。
import math
print(math.trunc(0))
print(math.trunc(1))
print(math.trunc(1.5))
print(math.trunc(1.51))
print(math.trunc(1.49))
print(math.trunc(-1.5))
print(math.trunc(-1.51))
print(math.trunc(-1.49))
print(math.trunc(1.9999999999999999))
print(math.trunc(-1.9999999999999999))
出力:
0
1
1
1
1
-1
-1
-1
2
-2
機能の詳細については、公式ドキュメントを参照してくださいこちら
次に、ceil()
関数があります。この関数は、引数として渡された数値またはそれ以上の最小整数の上限値を返します。
import math
print(math.ceil(0))
print(math.ceil(1))
print(math.ceil(1.5))
print(math.ceil(1.51))
print(math.ceil(1.49))
print(math.ceil(-1.5))
print(math.ceil(-1.51))
print(math.ceil(-1.49))
print(math.ceil(1.9999999999999999))
print(math.ceil(-1.9999999999999999))
出力:
0
1
2
2
2
-1
-1
-1
2
-2
機能の詳細については、公式ドキュメントを参照してくださいこちら
最後に、floor()
関数があります。この関数は、引数として渡された数値以下の数値または最大整数のフロア値を返します。
import math
print(math.floor(0))
print(math.floor(1))
print(math.floor(1.5))
print(math.floor(1.51))
print(math.floor(1.49))
print(math.floor(-1.5))
print(math.floor(-1.51))
print(math.floor(-1.49))
print(math.floor(1.9999999999999999))
print(math.floor(-1.9999999999999999))
出力:
0
1
1
1
1
-2
-2
-2
2
-2
機能の詳細については、公式ドキュメントを参照してくださいこちら
関連記事 - Python Float
- Python で最大フロート値を求める
- Python で Float オブジェクトが呼び出せない問題の修正
- Python で文字列を浮動小数点値に変換する
- Python で文字列が数値かどうかを調べる
- Python で文字列を 10 進数に変換する
- Python でリストを Float に変換する