Maybe this could be a solution; it satisfies all commented cases:
$num = 10.5;
$padded="0000".$num."0000";
if (($dotpos = strpos($padded, ".")) !== FALSE) {
$result = substr($padded, $dotpos-2, 2).".".substr($padded, $dotpos+1, 2);
} else {
$result = sprintf("%02s", $num);
}
echo $result;
Cases:
num = 4 -> output = 04
num = 4.5 -> output = 04.50
num = 10 -> output = 10
num = 10.5 -> output = 10.50