home changes contents help options

187:浮動小数点数を丸める

組み込み関数のround(x,n=0)を使います。数値xは小数点以下n桁に丸められます。浮動小数点の演算は10進数ではなく2進数で行われているので、誤差があります。
10進数の計算はどうやるのだろうと一時間近く悩んでいたのですが、python2.4からサポートされたようです。 http://www.itmedia.co.jp/enterprise/articles/0501/24/news034_3.html

 >>> round(8.666)
 9.0
 >>> round(8.4489)
 8.0
 >>> round(8.4489,0)
 8.0
 >>> round(8.4489,1)
 8.4000000000000004
 >>> round(8.4489,2)
 8.4499999999999993
 >>> print round(8.4489,2)
 8.45

切り上げと切り捨て

 >>> import math
 >>> math.ceil(1.1)
 2.0 
 >>> math.floor(1.7)
 1.0