[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 メーリングリストの案内