note 38928 added to function.round
| From: | terry at scribendi dot com | Date: | Mon, 12 Jan 2004 16:45:24 +0000 |
| Subject: | note 38928 added to function.round | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-63353@lists.php.net to get a copy of this message | ||
To round any number to a given number of significant digits, use log10 to find out its magnitude:
round($n, ceil(0 - log10($n)) + $sigdigits);
Or when you have to display a per-unit price which may work out to be less than a few
cents/pence/yen you can use:
// $exp = currency decimal places - 0 for Yen/Won, 2 for most others
$dp = ceil(0 - log10($n)) + $sigdigits;
$display = number_format($amount, ($exp>$dp)?$exp:$dp);
This always displays at least the number of decimal places required by the currency, but more if
displaying the unit price with precision requires it - eg: 'English proofreading from $0.0068
per word', 'English beer from $6.80 per pint'.
----
Manual Page -- http://www.php.net/manual/en/function.round.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+38928
Delete -- http://master.php.net/manage/user-notes.php?action=delete+38928&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+38928&report=yes
Search -- http://master.php.net/manage/user-notes.php