I would like to format 0.45 as 45%.
I know I can just do something like FLOOR($x*100).'%', but wonder if there is a better way (better is defined as more standard and not necessarily faster).
One thought is http://php.net/manual/en/class.numberformatter.php. Is this a better way? Has anyone used it and can you show an example? Thanks
The number_format() function formats a number with grouped thousands. Note: This function supports one, two, or four parameters (not three).
Most likely, you want round instead of floor. But otherwise, that would be the most "standard" way to do it. Alternatively you could use sprintf such as:
sprintf("%.2f%%", $x * 100) which would print the percentage of $x with two decimal points of precision, and a percentage sign afterwards.
The shortest way to do this via NumberFormatter is:
$formatter = new NumberFormatter('en_US', NumberFormatter::PERCENT);
print $formatter->format(.45);
It would be better to do this if your application supports various locales, but otherwise you're just adding another line of code for not much benefit.
You can also use a function.
function percent($number){
    return $number * 100 . '%';
}
and then use the following to display the result.
percent($lab_fee)
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With