Re: Testing math functions

From: Date: Sun, 26 Aug 2007 08:41:22 +0000
Subject: Re: Testing math functions
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-31915@lists.php.net to get a copy of this message
On 8/23/07, Zoe Slattery <zoe.slattery@googlemail.com> 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). --Pierre

« previous php.internals (#31915) next »