[PHP-users 30358] Re: これって2進演算の丸め誤差?
Toshio Uchiyama
uchiyama @ shonan.homeunix.org
2006年 9月 19日 (火) 14:23:44 JST
お世話になります。内山と申します。よろしくお願いします。
PHP は、遊びでしか触ったことありませんので、変数に型が
あるかどうかも分かりませんが。
$n = 10500.0;
とすると、どうでしょうか????
Fortran や C 言語では、倍精度浮動小数点っていうの
があって、丸め誤差が5桁やそこらで見えないようにすることが
できたと思います。
<DAC6DBA3C588ECbanban @ landhere.info> の、
"[PHP-users 30357]これって2進演算の丸め誤差?" において、
""banban @ landhere.info" <banban @ landhere.info>"さんは書きまし
た:
> こんにちは、vanと申します。
>
> $n = 10500;
> $r = 0.7;
> $a = floor($n * $r);
>
> この計算で、$a に 7350 を期待するのですが、7349 となり
> ます。これは、一般に言う、2進演算の丸め誤差なのでしょ
> うか?
>
> この例では、floor は意味無いので、取ると 7350 と計算さ
> れています。
>
> ちなみに、floor($n * 7 / 10) のようにすると回避できます。
>
> また、PHP5 / PHP4 ともに同じ結果でした。
>
> --
> van
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>
--
Toshio Uchiyama
uchiyama @ shonan.homeunix.org
PHP-users メーリングリストの案内