Вы можете удалить десятичную точку ($ x - ваш номер):
$strfloat = strtolower((string)($x));
$nodec = str_replace(".", "", $x);
Затем выведите экспоненциальную часть.
list($num, $exp) = explode("e", $nodec);
$exp = intval($exp);
Тогда у вас есть десятичное число и число, чтобы вы могли отформатировать его:
if($exp < 0) return "0." . ("0" * -($exp + 1)) . $num;
if($exp == 0) return (string)$x;
if($exp > 0) return $num . ("0" * $exp);
Это не добавляет точности, просто дополнительные нули.