さて、今回はRubyとPythonの題名をつけてしまいましたけど、それらの言語だけに限らないような話題です*1。早速ですが、FreeBSD環境を用意してください(おそらくSPARC Solaris環境やMac OS X環境でも同じ結果だろうと思いますが、僕は確認していません)。 $ ruby -e 'x=0.49999999999999994; printf("%.19f\n%.19f\n", x, x.round());' 0.4999999999999999445 1.0000000000000000000 $ python -c 'x=0.49999999999999994; print "%.19f\n%.19f" % (x, round(x))' 0.4999999999999999445 1.0000000000000000000どう見ても0.5未満の数を四捨五入して1になって