Но php выводил в виде '8e-5' и нужен был метод, который преобразовал бы к виду 0.00008
Тогда все верно, sprintf() это решение данной проблемы.
]]>Решение: sprintf('%f', '8e-005');
Мне кажется, это не совсем то решение, которое ты хочешь (во всяком случае, не идеальное). Здесь ты просто преобразуешь одну строку в другую строку. Скорее всего, смысл твоей преобразования записи с e - в том, чтобы получить числовой тип, а не просто строковую запись в более привычном виде.
Я к тому, что sprintf() возвращает все ту же string, а (float) - уже число. Чисто технически, если с 8e-005 и пр. предполагается работать как с числами (складывать и пр.), то sprintf() вообще не нужен, т.е. PHP прозрачно преобразует 8e-005 в число в момент использования ('8e-5' + 1). Итого у тебя лишний и ненужный вызов функции - если уж приводить к формату, то чтобы получился числовой тип и PHP не нужно было его неявно преобразовывать.
В редких случаях тип даже имеет значение. Например, strrchr() ведет себя по-разному в зависимости от типа второго аргумента:
echo strrchr('123', sprintf('%f', '1')); // 123
echo strrchr('123', (float) '1'); // false
Спасибо, что подключился к теме
]]>Что показывает var_dump? string или double? Если string, то достаточно каста в число:
var_dump( (float) '8e-005' );
// double(8.0E-5)