Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
math.sqrt() / math.ceil() / math.floor()
『math』モジュールが提供する平方根・切り上げ・切り捨て・特殊値判定の関数です。浮動小数点数の精密な計算に使用します。
構文
import math # 平方根を計算します。 math.sqrt(数値) # 切り上げ(以上の最小整数)を返します。 math.ceil(数値) # 切り捨て(以下の最大整数)を返します。 math.floor(数値) # ゼロ方向への切り捨てを返します。 math.trunc(数値) # 数値が NaN(非数)かどうか確認します。 math.isnan(数値) # 数値が無限大かどうか確認します。 math.isinf(数値)
関数一覧
| 関数 | 概要 |
|---|---|
| math.sqrt(x) | xの平方根(正の平方根)を浮動小数点数で返します。xが負の場合は『ValueError』が発生します。 |
| math.ceil(x) | xの切り上げ値(x以上の最小の整数)を整数で返します。 |
| math.floor(x) | xの切り捨て値(x以下の最大の整数)を整数で返します。 |
| math.trunc(x) | xの小数部分を切り捨て、整数部分を返します。正負に関わらずゼロ方向に切り捨てます。 |
| math.isnan(x) | xが『NaN』(非数、Not a Number)の場合に『True』を返します。 |
| math.isinf(x) | xが正または負の無限大(『inf』)の場合に『True』を返します。 |
サンプルコード
import math
# sqrt() で平方根を計算します。
print(math.sqrt(9)) # 『3.0』と出力されます。
print(math.sqrt(2)) # 『1.4142135623730951』と出力されます。
print(math.sqrt(0.25)) # 『0.5』と出力されます。
# 負の数の平方根は虚数なのでエラーになります。
try:
math.sqrt(-1)
except ValueError as e:
print(f'エラー: {e}') # 複素数の平方根はcmathモジュールを使います。
# ceil() で切り上げます。
print(math.ceil(3.1)) # 『4』と出力されます。
print(math.ceil(3.9)) # 『4』と出力されます。
print(math.ceil(-3.1)) # 『-3』と出力されます(正の方向へ切り上げ)。
# floor() で切り捨てます。
print(math.floor(3.9)) # 『3』と出力されます。
print(math.floor(-3.1)) # 『-4』と出力されます(負の方向へ切り捨て)。
# trunc() はゼロ方向への切り捨てです。
print(math.trunc(3.9)) # 『3』と出力されます。
print(math.trunc(-3.9)) # 『-3』と出力されます(floor と異なります)。
# isnan() と isinf() で特殊値を確認します。
nan_val = float('nan')
inf_val = float('inf')
print(math.isnan(nan_val)) # 『True』と出力されます。
print(math.isinf(inf_val)) # 『True』と出力されます。
print(math.isinf(-inf_val)) # 『True』と出力されます。
# ページ数の計算など実用例(切り上げ)
total_items = 25
per_page = 10
pages = math.ceil(total_items / per_page)
print(f'{pages}ページ必要です。') # 『3ページ必要です。』と出力されます。
概要
『math.ceil()』と『math.floor()』は数値の方向性が異なります。『ceil()』は常に大きい方向(正の無限大方向)へ切り上げ、『floor()』は常に小さい方向(負の無限大方向)へ切り捨てます。一方『math.trunc()』は正負に関わらず常にゼロ方向へ切り捨てます。正の数では『floor()』と『trunc()』は同じ結果になりますが、負の数では異なります。
『math.sqrt()』は常に浮動小数点数を返します。整数の平方根が必要な場合は『int(math.sqrt(x))』と変換してください。負の数の平方根を求めるには複素数用の『cmath.sqrt()』を使う必要があります。
数学定数・対数・三角関数は『math.pi / math.e / math.log() / math.sin()』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。