Haskellで「小数点以下、四捨五入」をしたくて標準ライブラリPreludeに含まれている「round」関数を使ってみたところ、どうも結果がおかしい。調べてみると、どうやら「round」は「銀行型丸め」(小数部分が「0.5」ピッタリの場合、偶数に丸める)を行う関数のようだ。 Prelude> map round [-5.5 .. 5.5][-6,-4,-4,-2,-2,0,0,2,2,4,4,6] 僕はこの「銀行型丸め」で昔ハマったことがある。すっかり忘れていたが、このブログにも書いていた(「2010年07月18日」だそうだ…。遠い昔じゃのう…)。 そもそも「小数点以下、四捨五入」って、小数…