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

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


こんにちは、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 メーリングリストの案内