[PHP-users 30366] Re: これって2進演算の丸め誤差?

banban@landhere.info banban @ landhere.info
2006年 9月 19日 (火) 19:12:44 JST


おおぐまさま、ありがとうございます。

http://jp.php.net/manual/ja/language.types.float.php
> 0.1 や 0.7  のような簡単な小数表現も、若干精度を失うことなく
> 内部的な 2 進表現に変換することはできません。 これにより、
> 混乱する結果を生じることがあります。 つまり floor((0.1+0.7)*10)
> は、 予想される 8の代わりに実際の内部表現の結果として
> 7.9999999999... のようなものを結果として返します。

0.7 とした時点で精度が若干失われる、これですね。
今まで、あまり2進演算の誤差を意識したことがありませんでしたが、
今度から注意したいと思います。勉強になりました。

内山さんも、レスしていただきありがとうございました。
教えていただいた方法では回避できませんでしたが、丸め誤差について
理解を深めることができました。ありがとうございます。

--
 van


PHP-users メーリングリストの案内