* 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

Reply via email to