浮動小数点数
("float","double","実数"のような) フロート数は、次の構文により指定
できます。
$a = 1.234; $a = 1.2e3; $a = 7E-10;
|
floatの大きさはプラットフォーム依存です。ただし、通常はおよそ10 進数で14桁の精度があり、最大値は ~1.8e308
(これは 64ビット IEEE フォーマットです)となります。
浮動小数点数の精度
|
0.1
や
0.7
のような 簡単な小数表現も若干精度を失うことなく内部的な2進表現に変
換することはできません。これにより、混乱する結果を生じることがあ ります。つまり、
floor((0.1+0.7)*10)
は 予想される
8
の代わりに実際の内部表現の結果とし て
7.9999999999...
のようなものを結果として返し ます。
これは、いくつかの分数は有限の桁数の小数点表記で正確に表現できな
いという事実に関係しています。例えば、
1/3
の小 数点表記は、
0.3333333. . .
となります。
よって、小数の最後の桁を信用してはいかませんし、小数が等しいとい
う比較を行ってはいけません。より高い精度が必要な場合には、
任意精度数学関数
または
gmp
関数を代わりに使用して下さい。
|