Re: Re: Round with money_format

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sep 17, 2011, at 3:46 AM, Cyril Lopez wrote:

> From: Cyril Lopez <cyril@xxxxxxxxx>
> Date: September 16, 2011 10:58:28 AM EDT
> To: php-general@xxxxxxxxxxxxx
> 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.


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux