Erro de arredondamento do PHP

Estou usando o PHP 5.2.13 no meu servidor linux. Estou recebendo um erro estranho ao arredondar números. Este é o meu caso de teste:

<?php
echo "        " . round(1.505, 2) . "\n";
echo "       " . round(11.505, 2) . "\n";
echo "      " . round(111.505, 2) . "\n";
echo "     " . round(1111.505, 2) . "\n";
echo "    " . round(11111.505, 2) . "\n";
echo "   " . round(111111.505, 2) . "\n";
echo "  " . round(1111111.505, 2) . "\n";
echo " " . round(11111111.505, 2) . "\n";
echo "" . round(111111111.505, 2) . "\n";

Isto é resultados:

        1.51
       11.51
      111.51
     1111.51
    11111.51
   111111.51
  1111111.5
 11111111.51
111111111.51

Alguém sabe o que causa isso? Não consigo atualizar o PHP, pois é um servidor compartilhado.

questionAnswers(5)

yourAnswerToTheQuestion