Re: Re: [PHP] Round with money_format

From: Date: Sat, 17 Sep 2011 14:56:38 +0000
Subject: Re: Re: [PHP] Round with money_format
Groups: php.general 
Request: Send a blank email to php-general+get-314921@lists.php.net to get a copy of this message
On Sep 17, 2011, at 3:46 AM, Cyril Lopez wrote: > From: Cyril Lopez <cyril@nethik.fr> > Date: September 16, 2011 10:58:28 AM EDT > To: php-general@lists.php.net > Subject: Round with money_format > > Hi, > > Can someone help me understand how money_format() rounds numbers ? > > <?php > setlocale(LC_ALL, 'fr_FR.UTF-8'); > $price = 12.665; > echo money_format('%i',$price); > // 12.66 EUR, 12.67 EUR expected > > $price2 = 12.666; > echo money_format('%i',$price2); > // 12.67 EUR, ok > > echo round($price,2); > // 12.67, ok > echo round($price2,2); > // 12.67, ok > ?> > > Misconfiguration ? Bug ? > Thanks ! > > Cyril > > Config : > Debian Lenny, PHP 5.3.8 As someone else pointed out, rounding rules vary by locale, but I was taught 40+ years ago in graduate school programming class, 4 rounds down, 6 rounds up, and 5 rounds to the even number. This means 65 rounds to 6, while 75 rounds to 8. Your example seems to follow that rule. -----===== Bill =====----- -- Virtuous action will never go unpunished.

« previous php.general (#314921) next »