* Thus wrote John W. Holmes ([EMAIL PROTECTED]): > From: <[EMAIL PROTECTED]> > > > please suppose PHP 4.3.2 and $number=502,3550 > > > > number_format($number,2,'.',' ') returns 502.36. > > > > It seems ok, but if $number=253,0650 > > > > number_format($number,2,'.',' ') returns 253.06 instead of 253.07. > > > > Why? > > I've noticed this non-coherent approximation behaviour when > > 3rd decimal number is 5 and decimals are two many many > > times. > > Isn't there some "rule" where you round up on odd numbers and don't round up > on even, otherwise it comes out unevenly rounded up? > > So 0.15, 0.35, 0.55 will be rounded up to 0.2, 0.4, and 0.6, respectively, > whereas 0.25, 0.45, 0.65 will be rounded down to 0.2, 0.4, and 0.6, > respectively... > > Your test cases seem to fit this.
Interesting theory, but php5 doesn't show that behaviour: <?php for($i =0; $i < 9; $i++) { $number = "253.0{$i}50"; echo $number, ': ', number_format($number, 2, '.', ' '), "\n"; } 253.0050: 253.01 253.0150: 253.02 253.0250: 253.03 253.0350: 253.04 253.0450: 253.05 253.0550: 253.06 253.0650: 253.07 253.0750: 253.08 253.0850: 253.09 Curt -- "I used to think I was indecisive, but now I'm not so sure." -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php