php number round to 2 decimal places not working my number is 0.00000000000000000000001
and I want result as 0.01
. I tried php number_format() func
0.01 is far far greater than 0.00000000000000000000001. You can not round it to 0.01 . 0.006 can be rounded to 0.01 because they are very close to each other.
Number_format() and round() will not work in your case.
This functions adjust the decimals as per original math rules
in your case result will be always 0.00...as .01 will get converts to 0.0
Just make a simple function that returns either the rounded value or the minimum value you would like...
function round_special($x)
{
if ($x == 0) return 0;
$rounded = round($x, 2);
$minValue = 0.01;
if ($rounded < $minValue) {
return number_format($minValue, 2);
} else {
return number_format($rounded, 2);
}
}
So, results would look like:
$x = 0.00000000000000000000001;
echo round_special($x); // 0.01
echo round_special(0.0001); // 0.01
echo round_special(55); // 55.00
echo round_special(0.6); // 0.06