function min_precision($x, $p)
{
$e = pow(10,$p);
return floor($x*$e)==$x*$e?sprintf("%.${p}f",$x):$x;
}
foreach (Array(1,0.1,0.01,0.001,1.234,0.035,25.5) as $x)
{
echo $x . " -> " . min_precision($x,2) . "\n";
}
вывод:
1 -> 1.00
0.1 -> 0.10
0.01 -> 0.01
0.001 -> 0.001
1.234 -> 1.234
0.035 -> 0.035
25.5 -> 25.50