Cлучайные числа с плавающей точкой в PHP

Стандартные библиотеки PHP умеют генерировать только целые случайные числа. Однако, возникают задачи где нужно не целое рандомное число с максимально длинным хвостом, например, в диапазоне от 0 до 1. В таком случае можно воспользоваться таким способом:

$rnd = rand(0, getrandmax() ) / getrandmax();

Если же количество знаков после запятой должно быть, например, 2, то:

$rnd = rand(0, 100) / 100;

Отлично! А что, если нужно случайное число в диапазоне от 4 до 10 с тремя знаками после запятой? Пожалуйста:

$rnd = 4 + rand(0, 1000) / (1000 / (10 - 4) );

Или:

$rnd = 4 + rand( 0, (10 - 4) * 1000 ) / 1000;