Как перевести число из экспоненциальной формы в вещественную

Категория: / DEV Блог / PHP (LAMP)
Есть число 0.000090, представленное в экспоненциальной форме как 9.0E-5.
Нужно перевести его обратно в вещественную форму.

Есть как минимум два способа:

$a = number_format(9.0E-5,6,'.','')
$b = sprintf('%f', 9.0E-5)


Замерим скорость выполнения на большом количестве итераций


$t=microtime(1);
for ($i=1;$i<10000;$i++) {
        $b = number_format(9.0E-5 + 9.0E-5, 6, '.', '');
}
$t=microtime(1)-$t;
echo "1) {$t} : {$b}\n";
 
$t=microtime(1);
for ($i=1;$i<10000;$i++) {
    $b = sprintf('%.6f', 9.0E-5 + 9.0E-5);
}
$t=microtime(1)-$t;
echo "2) {$t} : {$b} \n";


На выходе получим результат:

# php exponent.php
1) 0.012060165405273 : 0.000180
2) 0.0090920925140381 : 0.000180


sprintf оказался на порядок быстрее number_format.