To round any number to a given number of significant digits, use log10 to find out its magnitude:
<?php 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:
<?php
$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'.