Python – 整数の特定の位で四捨五入

整数の特定の位で四捨五入する方法って、あるのだろうか?
と、必要に駆られて調べてみました。
恐らく、文字列に変換して桁数をlen関数で数えて使うのではないか、という発想の元に調べてみると、
format関数に「g」という機能(?)があるのを知りました。有効桁数の指定だそうです。
それで、こんな感じに作ってみました。

def iRound(val):
	nVal = int(round(val))
	valStr = str(nVal)
	num = len(valStr) - 1
	return int(float("{0:.{1:}g}".format(nVal,num)))

print iRound(745)

結果は「740」
1の位を四捨五入したかったんですが、これだと切り捨てになってしまう、、
で、更に調べてみると、そもそも四捨五入するround関数の引数にマイナスを指定すると整数の桁の指定が可能。
ということを知り、こんな感じです。

def iRound(val):
	return int(round(val,-1))

print iRound(745)

結果は「750」
ああ、、簡単だった、、
どちらの関数ともに、浮動小数、もしくは整数の入力を想定しております。

コメントする

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トラックバックする

トラックバック用URL:

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です