↓もし、良かったらSNSでの紹介よろしくお願いします。

Python 桁数の取得、そろえる、丸める(int,string,float)

bootstrap

question-mark-2123969_640
Pythonでの
桁数の取得、桁あわせ、
小数点以下の丸め込み(四捨五入、切り上げ、切り捨て)の方法を紹介します。

桁数を取得する

>>>len(str(1000))
4

または

>>>import math
>>>math.log10(1000) + 1
4.0

桁数をそろえる(int,float→str)

String型で桁数をそろえる

0で埋める場合

>>>"794".zfill(4)
'0794'
>>>"794".zfill(5)
'00794'

スペースで埋める場合

>>>"794".ljust(5)# 左揃え
'794  '
>>>"794".rjust(5)# 右揃え
'  794'
>>>"794".center(5)# 中央揃え
' 794 '
>>>"79".center(5)# 偶数桁の時の中央揃え
'  79 '

桁数を指定してintをstringに変換

>>>"{0:04d}".format(794)
'0794'
>>>"{0:05d}".format(794)
'00794'

マイナスの場合

>>>"{0:04d}".format(-1)
'-001'

スペースで埋める場合

>>>"{0:4d}".format(794)
' 794'

桁数を指定してfloatをStringに変換

>>>"{0:.2f}".format(3.141592)
'3.14'
>>>"{0:.3f}".format(3.141592)
'3.141'

Python3.6以降は、こんな書き方も

>>>f"{794:04d}"
'0794'
>>>f"{794:4d}"
' 794'
>>>f"{3.141592:.2f}"
'3.14'

小数点以下を丸める

roundで四捨五入

>>> f = 3.141592653
>>> math.floor(f)
3
>>> round(f, 2)# 小数点以下2位
3.14
>>> round(f, 3)# 小数点以下3位
3.142

ただし、端数が0.5ちょうどの時は注意が必要です。

>>> round(0.5)
0
>>> round(1.5)
2
>>> round(2.5)
2

これは、偶数丸めと呼ばれる丸め方で端数がちょうど0.5の時は、
切り捨てと切り上げで偶数になるほうに丸める方法です。

0.5の場合は、0と1のうち偶数である0に丸まります。

1.5の場合は、1と2のうち偶数である2に丸まります。

math.floorで切り捨て

>>> import math
>>> f = 3.141592653
>>> math.floor(f)
3
>>> math.floor(f*10)/10# 小数点以下1位
3.1
>>> math.floor(f*100)/100# 小数点以下2位
3.14

math.ceilで切り上げ

>>> import math
>>> f = 3.141592653
>>> math.ceil(f)
4
>>> math.ceil(f*10)/10
3.2
>>> math.ceil(f*100)/100
3.15