PHP enter percentage number round to 2 decimal places not working

折月煮酒 提交于 2020-01-11 13:12:13

问题


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() function php round() function but they didn't work for me.


回答1:


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



回答2:


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.




回答3:


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



来源:https://stackoverflow.com/questions/41733886/php-enter-percentage-number-round-to-2-decimal-places-not-working

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!