Dalían
Dalían

Reputation: 252

Rounding function

I'm trying to round a number to 1 decimal place.

I've written this code to shorten numbers over 1000:

$numbers = array($count);
function format_number($number) {
if($number >= 1000) {
   return $number/1000 . "k";
}
}
foreach($numbers as $number) {
echo "Posts: ";
echo format_number($number);
}

For example this makes 15900 15.900k. Now I made a rounding part so it only reads as 15.9k:

$rounded = round($number, 1); // e.g. 66.7346 becomes 66.7

and echoed it:

echo "".$rounded."";

but nothing shows.

Any ideas?

Upvotes: 0

Views: 81

Answers (1)

h2ooooooo
h2ooooooo

Reputation: 39522

You aren't returning anything if the number is less than 1000.

function format_number($number) {
    if($number >= 1000) {
        return $number/1000 . "k";
    }
    //What happens here if the number is not 1000?
}

I'd rewrite it as this:

function format_number($number) {
    $append = '';
    if($number >= 1000) {
        $number /= 1000;
        $append = 'k';
    }
    return round($number, 1) . $append;
}

Upvotes: 1

Related Questions