Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでの数値精度処理の基本:trunc・ceil・floor・round関数の使い方

Pythonでは、浮動小数点数(小数)の精度を扱うためのさまざまな関数が用意されています。精度処理のための関数の多くはmathモジュールに定義されているため、これらを使うには、まずmathモジュールを現在の名前空間にインポートする必要があります。

import math

ここからは、精度処理に役立つ主な関数を順番に見ていきましょう。

trunc()関数:小数部分を切り捨てる

trunc()メソッドは、浮動小数点数から小数部分をすべて取り除き、整数部分だけを返します。「切り捨て」を行いたい場合に便利な関数です。

ceil()関数:天井値(切り上げ)を求める

ceil()メソッドは、数値の「天井値(Ceiling値)」を返します。天井値とは、その数値以上で最も小さい整数のことです。つまり、小数点以下を切り上げた値になります。

floor()関数:床値(切り下げ)を求める

floor()メソッドは、数値の「床値(Floor値)」を返します。床値とは、その数値以下で最も大きい整数のことです。つまり、小数点以下を切り下げた値になります。

サンプルコード

import math
number = 45.256
print('小数部分を削除: ' + str(math.trunc(number)))
print('天井値: ' + str(math.ceil(number)))
print('床値: ' + str(math.floor(number)))

実行結果

小数部分を削除: 45
天井値: 46
床値: 45

このように、上記の関数を使えば小数部分を取り除いて正確な整数値を取得できます。次に、小数部分をより効果的に制御する方法を見ていきましょう。

%演算子による書式指定

%演算子は、Pythonで文字列の書式設定や精度の指定を行うために使われます。%.3fのように記述することで、小数第3位まで表示できます。

format()関数による書式設定

format()メソッドも、文字列を整形して正しい精度を設定するために使用されます。{0:.4f}のような形式で、小数第4位までの表示を指定できます。

round(a, n)関数:四捨五入

round()メソッドは、数値aを小数点以下n桁で四捨五入するために使用します。書式指定とは異なり、実際に数値として丸められた値が返される点が特徴です。

サンプルコード

import math
number = 45.25656324
print('小数第3位までの値は %.3f' %number)
print('小数第4位までの値は {0:.4f}'.format(number))
print('小数第3位で四捨五入した値は ' + str(round(number, 3)))

実行結果

小数第3位までの値は 45.257
小数第4位までの値は 45.2566
小数第3位で四捨五入した値は 45.257

このように、%演算子やformat()関数は「表示の形式」を整えるのに適しており、round()関数は実際の数値を丸めるのに適しています。用途に応じて使い分けることで、Pythonにおける数値の精度処理を柔軟かつ正確に行えます。

  1. Pythonで階乗を計算する3つの方法|forループ・再帰・math.factorial()の使い方

    階乗(factorial)の計算は、データ分析をはじめとする数学的な処理において、Pythonでよく求められる操作の一つです。階乗とは、正の整数 n に対して、1から n までのすべての整数を掛け合わせた値のことです(例:5! = 1 × 2 × 3 × 4 × 5 = 120)。この記事では、Pythonで階乗を求める3つの方法を、コード例と実行結果とともにわかりやすく解説します。方法1:forループを使うforループで1から目的の数値まで順番に処理し、各ステップで掛け算を繰り返していく方法です。以下のプログラムでは、ユーザーに数値の入力を促し、ループ処理の前にint()で入力値を整数に変換

  2. Pythonでfloat値が整数かどうかを確認する方法

    float.is_integer()メソッドを使う Pythonでfloat値が整数(小数点以下が0の数)かどうかを確認するには、float.is_integer()メソッドを使用します。このメソッドは、対象のfloat値が整数であればTrue、そうでなければFalseを返します。 基本的な使い方 print((10.0).is_integer()) print((15.23).is_integer()) 実行結果は以下の通りです。 True False 負の値や変数での使用例 負のfloat値や、プログラム内の変数に対しても同じように使えます。 num = -7.0 print(num