4.7 - 2.3 * 2 == 0.1 は False↑の式は,算数的には True が返ってほしいもの.でも,プログラムの実行結果は False が返ってきてしまう.原因は浮動小数点小数の演算の誤差によるもの. 小数を扱うライブラリを開発するにあたり,この手の小数の誤差問題はよく出てくるけれど,これに対処する為に3つアプローチがある. ライブラリ側で丸めてしまう ライブラリの利用側で丸める テストでのみ,「だいたい合ってる」というテストにする (1) のアプローチはオススメしない.ライブラリで丸める,という事は,その丸め誤差をライブラリの利用者が知ってないといけないし,またライブラリの利用者はその丸め誤差を自分でコントロールできない. また,この類は小数だけでなく,巨大な整数でもケースが考えられる.「だいたい百より下の桁の数は別にどうだっていい…」っていう時とかね. だから (2),(