Pierre wrote:
On 8/23/07, Zoe Slattery <[EMAIL PROTECTED]> wrote:
Hi - I've writing a few tests for the math extension and have a question
about floating point precision.
Here's a small example:
--TEST--
Test return type and value for expected input sin()
--INI--
precision = 14
--FILE--
<?php
$threesixty = pi() * 2.0;
echo "sin 360 = ";
var_dump(sin($threesixty));
?>
--EXPECT--
sin 360 = float(-2.4492127076448E-16)
Is it right to test for an exact number in this way? I was slightly
suprised that I got the same number from Windows and Linux (maybe I
shouldn't be).
If not, I could write the test above to check that sin 360 is zero
plus/minus some small number - but how small?
It really depends on the architecture. Using a precision of 10 should
put you on the safe side, at least for the common architecture (intel,
amd and ppc).
Yes - you are right thanks. I'm currently testing that the answer is
within +/- 1.0E-10 of what I expect - that works on the processor
architectures that I have access to. I guess I'll find out what happens
on the others wheh I check the test cases in :-).
--Pierre
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php