как преобразовать десятичные значения в экспоненциальную форму в php

У меня есть вывод, как следующие числа с плавающей запятой.

0.00035074062222222
0.00042088874666667
0.00042088874666667
0.00056118499555556

Но я хочу, чтобы указанные выше числа отображались, как показано ниже,

3.51E-05
4.21E-05
4.89E-05
5.61E-05

Я имею в виду экспоненциальный формат формы. Я порылся в нете. Я не мог найти никакого решения для этого.

Возможно ли это в php?. если да Как это сделать?.


person Ravichandran Jothi    schedule 18.03.2014    source источник
comment
Вторые и третьи данные выглядят одинаково. Как изменились выходные данные?   -  person Shankar Narayana Damodaran    schedule 18.03.2014


Ответы (2)


Взгляните на sprintf и средства форматирования научного представления %e и %E. .

echo sprintf('%E', 0.00035074062222222);

Вывод

3.507406E-4

Чтобы округлить результат, используйте необязательный спецификатор точности.

echo sprintf('.2%E', 0.00035074062222222);

Вывод

3.51E-4
person David T. Sadler    schedule 18.03.2014
comment
Спасибо. Есть ли возможность сделать этот вывод как 3.51E-05 (например, округлить) - person Ravichandran Jothi; 18.03.2014

См. sprintf.

$num = 0.00035074062222222;
echo sprintf('%.2E', $num); // .2 used to limit the number of fractional digits.

Выход:

3.51E-4
person xdazz    schedule 18.03.2014