PHP enter percentage number round to 2 decimal places not working

后端 未结 3 1254
孤街浪徒
孤街浪徒 2021-01-17 00:33

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

相关标签:
3条回答
  • 2021-01-17 01:13

    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.

    0 讨论(0)
  • 2021-01-17 01:27

    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

    0 讨论(0)
  • 2021-01-17 01:30

    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
    
    0 讨论(0)
提交回复
热议问题