Как перевести число из экспоненциальной формы в вещественную
Категория: / DEV Блог
/ PHP (LAMP)
Есть число 0.000090, представленное в экспоненциальной форме как 9.0E-5.
Нужно перевести его обратно в вещественную форму.
Есть как минимум два способа:
Замерим скорость выполнения на большом количестве итераций
На выходе получим результат:
sprintf оказался на порядок быстрее number_format.
Нужно перевести его обратно в вещественную форму.
Есть как минимум два способа:
$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.