11

I have a php script that show a time like: 9.08374786377E-5 , but i need plain floating value as a time like : 0.00009083747..... Thats why i just print it with float like that:

<?php

function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_start = microtime_float();

$time_end = microtime_float();
$time = $time_end - $time_start;
printf('%.16f', $time);

?>

Its show the result nicely, but i need to set this printing value in a new variable. how can i do that ? I need to set this printing value in a new variable $var;

$var = printf('%.16f', $time); 

// We all know its not working, but how to set ?

Rontdu
  • 223
  • 1
  • 2
  • 10

2 Answers2

34

You need to use the sprintf command to get your data as a variable... printf outputs the results whereas sprintf returns the results

$var = sprintf('%.16f', $time); 
Orangepill
  • 24,500
  • 3
  • 42
  • 63
4

That's because sprintf() returns a string, printf() displays it.

printf('%.16f', $time);

is the same as:

echo sprintf('%.16f', $time);

Since sprintf() prints the result to a string, you can store it in a variable like so:

$var = sprintf('%.16f', $time);

Hope this helps!

Amal Murali
  • 75,622
  • 18
  • 128
  • 150