Pythonのround関数にバグらしきものを見つけたよ、という報告です。下記は僕のMacBookでの実行結果です。 $ python -c 'x=9007199254740991.0; print "%.19f\n%.19f" % (x, round(x))' 9007199254740991.0000000000000000000 9007199254740992.0000000000000000000 xは9000兆より少し大きい整数で、IEEE754倍精度浮動小数点数で誤差無く表現できる数です。ところが、これをround関数で丸めたら1大きい数になってしまいました。 再現方法 今回も微妙な話題なので、環境によって起きたり起こらなかったりします。私の手元の環境で言うと、MacOSXとFreeBSDで起こり、Linux環境では起こりませんでした。コンパイルオプションによってはLinux