round関数を使用してPythonで数値を丸める | プログラミング学習 初心者向け入門ガイド

ホーム › >>

round関数を使用してPythonで数値を丸める

記事掲載:https://laptrinhcanban.com/ja

Python で数値を丸める方法のチュートリアル。このレッスンでは、ラウンド関数を使用して Python で数値を丸める方法を学習します。

round()関数を使用してPythonで数値を丸める

Python をインストールするとき、 round()を含む一部の組み込み関数はインポートなしで使用できます。

次の構文を使用して、Python で数値 (整数または実数) を丸めるために round() 関数を使用します。

round(number , ndigits)

そこで、

  • round:関数名
  • number:丸めたい値
  • ndigits:丸めた結果の小数点以下の桁数。省略ができ、デフォルトndigitsは 0です

round()関数は次の場合に使用できます。

Pythonで実数を丸める

実数の場合、次の例のようにカンマの後の数値を自由に丸めます。

round() 関数を使用して、カンマの後の数値を丸め、実数を整数に変換します

round() 関数でndigitsを指定しないことにより、次の例のようにカンマの後の数値を丸め、実数をカンマなしの整数に変換できます。

f = 123.456

print(type(f))
# <class 'float'>

print(round(f))
# 123

print(type(round(f)))
# <class 'int'>

ご覧通り、f数値が実数であり、round()で丸めた後、カンマの後に四捨五入されてintになっていることがわかります。

round() 関数を使用して、実数を丸め、丸める小数点以下の桁数を指定

ndigitsの値をに指定することで、python で実数を丸める際に丸める小数点以下の桁数を指定することができます。負の値がある場合ndigitsはカンマの左側に小数点以下の桁を指定し、正の値はカンマの右側に小数点以下の桁を指定します。

例えば、-1は数十、-2は数百であり、0で指定るると省略されます。

数値:       1   2  3 ,  4  5  6
ndigits      -2  -1  0    1  2  3

具体例は以下のとおりです。

f = 123.456

print(type(f))
# <class 'float'>

print(round(f, 1))
# 123.5

print(round(f, 2))
# 123.46

print(round(f, -1))
# 120.0

print(round(f, -2))
# 100.0

print(round(f, 0))
# 123.0

print(type(round(f, 0)))
# <class 'float'>

実数がさまざまな場所で丸められ、返された結果で float データ型が変更されていないことがわかります。

round() 関数を使用して Python で整数を丸める

実数と同様に、 ndigitsの値を指定または減らすことで、丸められる位置で数値を丸めることができます。

以下の具体的な例を見てみましょう。尚、整数を丸めた結果も整数になることに注意してください。

i = 99518

print(round(i))
# 99518

print(round(i, 2))
# 99518

print(round(i, -1))
# 99520

print(round(i, -2))
# 99500

print(round(i, -3))
# 100000

round() 関数は、省略された丸めではなく、偶数の丸めです

Python の最新バージョンでは、 round() 関数は数値の丸めではなく、偶数の丸め (バンキングで使用) であることに注意してください。

偶数丸めは次のように定義されます。

端数が 0.5 未満の場合は切り捨て、端数が 0.5 より大きい場合は端数を切り捨て、端数が 0.5 の場合は切り捨てまたは切り上げを行い、結果が偶数になるようにします。
偶数の丸め

公式の python ウェブサイトによると、0.5の偶数丸められ結果は0であり、1.5の偶数丸められた結果は2になります。

以下にいくつかの例を見てみましょう。

print('0.4 =>', round(0.4))
print('0.5 =>', round(0.5))
print('0.6 =>', round(0.6))
# 0.4 => 0
# 0.5 => 0
# 0.6 => 1

print('4 =>', round(4, -1))
print('5 =>', round(5, -1))
print('6 =>', round(6, -1))
# 4 => 0
# 5 => 0
# 6 => 10

偶数の丸めでは、0.5は常に切り上げまたは切り捨てになるとは限らないことに注意してください。

print('0.5 =>', round(0.5))
print('1.5 =>', round(1.5))
print('2.5 =>', round(2.5))
print('3.5 =>', round(3.5))
print('4.5 =>', round(4.5))
# 0.5 => 0
# 1.5 => 2
# 2.5 => 2
# 3.5 => 4
# 4.5 => 4

また、小数点以下 2 桁目以降の浮動小数点実数でround() 関数を使用すると、常に正しい値を取得できるとは限りません。

print('0.05 =>', round(0.05, 1))
print('0.15 =>', round(0.15, 1))
print('0.25 =>', round(0.25, 1))
print('0.35 =>', round(0.35, 1))
print('0.45 =>', round(0.45, 1))
# 0.05 => 0.1
# 0.15 => 0.1
# 0.25 => 0.2
# 0.35 => 0.3
# 0.45 => 0.5

その理由は、Python ドキュメントによると、本質的に実数を正確に 10 進数として表すことができないためです。

浮動小数点実数で round() 関数を使用すると、驚くべき結果が得られることに注意してください。たとえば、 round(2.675, 2) は、予想される 2.68 ではなく 2.67 を返します。これはエラーではありません。これは、ほとんどの 10 進数が浮動小数点数で正確に表現されていないための結果です。

実数でも丸めたときに正確な結果を出したい場合は、10 進標準ライブラリに組み込まれている quantize() メソッドを使用します。これについては、次のレッスンで学習しましょう。

まとめ

上記 Kiyoshi は Python の round 関数を使用して、Python で数値を丸める方法を示しました。レッスンの内容をよりよく理解するために、今日の例を書き直す練習をしてください。

そして、次のレッスンで Python の知識についてさらに学びましょう。

URL Link

https://laptrinhcanban.com/ja/python/nhap-mon-lap-trinh-python/so-trong-python/lam-tron-so-trong-python-bang-ham-round/

この記事は役立つと思ったらいいね!とシェアをお願いします
">

ホーム  › >>

Profile
きよしです!笑

Author: Kiyoshi (Chis Thanh)

Kiyoshi was a former international student in Japan. After graduating from Toyama University in 2017, Kiyoshi is currently working as a BrSE in Tokyo, Japan.