("float","double","実数"のような) フロート数は、次の構文により指定 できます。 0.1 や 0.7 のような 簡単な小数表現も若干精度を失うことなく内部的な2進表現に変 換することはできません。これにより、混乱する結果を生じることがあ ります。つまり、 floor((0.1+0.7)*10) は 予想される 8 の代わりに実際の内部表現の結果とし て 7.9999999999... のようなものを結果として返し ます。 これは、いくつかの分数は有限の桁数の小数点表記で正確に表現できな いという事実に関係しています。例えば、 1/3 の小 数点表記は、 0.3333333... となります。 よって、小数の最後の桁を信用してはいかませんし、小数が等しいとい う比較を行ってはいけません。より高い精度が必要な場合には、 任意精度数学関数 または gmp 関数を代わりに使用して下さい。