Use php money format and remove the numbers after the decimal place for GBP

12,617

Do you want to round it or get rid of the decimals?

To round it which would be 8933 would be:

echo utf8_encode(money_format('%.0n', $sales));

To get rid of the decimals, you could use floor (which rounds down):

echo utf8_encode(money_format('%.0n', floor($sales)));
Share:
12,617
Ben Paton
Author by

Ben Paton

Web designer and developer from the UK. Work on a mixture of work web projects and my own web projects. Self taught in PHP among other things so bear with me.

Updated on July 02, 2022

Comments

  • Ben Paton
    Ben Paton almost 2 years

    I want to format some numbers from my analytics into currency using the GB money format but as its for a dashboard and doesn't need to be that precise so I want to remove the pence (numbers after the decimal place) and round it which helps with the css layout, how do I do this? Rounding up or down to the nearest pound would be fine.

    My code is as follows:

    //set locale for currency
    setlocale(LC_MONETARY, 'en_GB');
    
    $sales = '8932.83';
    
    echo utf8_encode(money_format('%n', $sales));
    

    This outputs: £8,932.83

    However how do I round this to be output as just £8,932 without anything after the decimal place.

    I want to use currency format as sometimes the figure is negative in which case money_format returns the number like -£8,932.83 which is preferable to £-8,932 (pound and negative symbol around the wrong way) which is what happened when I formatted using number_format like so:

    echo '£'.number_format($sales, 0, '', ',');