Use a print formatter or number_format/money_format. Money_format would be the best if its available since it can be given a locale instead and it will render the currency for you (pounds, euro's, whatever).
The problem is a simple round calculation. Money_format will only work in 2 relevant digits, number_format is given the number of significant digits, and [s]printf works with floating point precision. Money_format is the best for monies since it adds the currency symbols by default, but it does require strfmon capabilities (so. . . not a windows machine).
Float numbers you'll definitely need to round for the significant digits; the nights needs to be ceil() called. All other methods will round, so you could end up with 60.4 becoming 60 when it should be 61 presumably.
$number = 1234.5678;
printf("Amount: %s" . PHP_EOL, money_format("%n", $number));
printf("Amount: %0.2f" . PHP_EOL, $number);
printf("Amount: %s" . PHP_EOL, number_format($number, 2));